public static RespUploadData Parse(string res) { RespUploadData resultData = null; try { resultData = JsonUtility.FromJson <RespUploadData>(res); } catch (Exception e) { PTDebug.LogError(string.Format("Type:{0} 解析出错,解析数据:{1}", "RespUploadData", res)); return(null); } return(resultData); }
public static IDisposable UploadFile(string filePath, Action <string, string> onCallback = null) { if (!File.Exists(filePath)) { PTDebug.LogError("文件不存在!路径:{0}", filePath); onCallback.InvokeGracefully(filePath, null); return(null); } return(GetUploadToken(token => { if (token.IsNullOrEmpty()) { PTDebug.LogError("获取UploadToken失败!"); onCallback.InvokeGracefully(filePath, null); return; } var data = GetUploadFliePostData(filePath, token); ObservableWWW.Post(data.Url, data.Form).Timeout(TimeSpan.FromSeconds(30)).Subscribe(res => { var resData = RespUploadData.Parse(res); if (resData.code == 0) { onCallback.InvokeGracefully(filePath, RespUploadData.GetFileName(res)); } else { PTDebug.LogError(resData.message); onCallback.InvokeGracefully(filePath, null); } }, e => { PTDebug.LogError("Error:" + e.ToString()); onCallback.InvokeGracefully(filePath, null); }); })); }