public bool UploadFile(string File, string Author, string AreaCode, string UnitName) { string vUrl = string.Format("{0}/Api/UploadFile", m_RemotingServerAddress); UploadFileStruct vUFStruct = new UploadFileStruct(); vUFStruct.UsersAuthor = new UserAuthorSturct(); vUFStruct.UsersAuthor.UserID = m_UserID; vUFStruct.UsersAuthor.Token = m_Token; vUFStruct.UsersAuthor.UserName = m_UserName; vUFStruct.Files = new IntrefaceStruct.FileInfo[1]; vUFStruct.Files[0] = new IntrefaceStruct.FileInfo(); vUFStruct.Files[0].FileName = Path.GetFileName(File); vUFStruct.Files[0].Author = Author; vUFStruct.Files[0].AreaCode = AreaCode; vUFStruct.Files[0].UnitName = UnitName; JavaScriptSerializer vJSC = new System.Web.Script.Serialization.JavaScriptSerializer(); string vJsonStr = vJSC.Serialize(vUFStruct); NameValueCollection vCollection = new NameValueCollection(); vCollection.Add("Json", vJsonStr); List <ByteArrayContent> vFormDatas = GetFormDataByteArrayContent(vCollection); List <ByteArrayContent> vFiles = GetFileByteArrayContent(new string[] { File }); string vFileUp = HttpPostFile(vUrl, vFormDatas, vFiles); bool vResult; bool zz = bool.TryParse(vFileUp, out vResult); return(vResult); }
public bool UploadFiles(string[] Files, string[] Authors, string[] AreaCodeList, string[] UnitNameList) { string vUrl = string.Format("{0}/Api/UploadFile", m_RemotingServerAddress); UploadFileStruct vUFStruct = new UploadFileStruct(); vUFStruct.UsersAuthor = new UserAuthorSturct(); vUFStruct.UsersAuthor.UserID = m_UserID; vUFStruct.UsersAuthor.Token = m_Token; vUFStruct.Files = new IntrefaceStruct.FileInfo[Files.Length]; for (int i = 0; i < Files.Length; i++) { vUFStruct.Files[i] = new IntrefaceStruct.FileInfo(); vUFStruct.Files[i].FileName = Path.GetFileName(Files[i]); vUFStruct.Files[i].Author = Authors[i]; vUFStruct.Files[i].AreaCode = AreaCodeList[i]; vUFStruct.Files[i].UnitName = UnitNameList[i]; } JavaScriptSerializer vJSC = new System.Web.Script.Serialization.JavaScriptSerializer(); string vJsonStr = vJSC.Serialize(vUFStruct); NameValueCollection vCollection = new NameValueCollection(); vCollection.Add("Json", vJsonStr); List <ByteArrayContent> vFormDatas = GetFormDataByteArrayContent(vCollection); List <ByteArrayContent> vFiles = GetFileByteArrayContent(Files); string vResult = HttpPostFile(vUrl, vFormDatas, vFiles); return(bool.Parse(vResult)); }
// POST: api/UploadFile public async Task <bool> Post(int id = 0) { bool vResult = false; if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } Dictionary <string, string> vDic = new Dictionary <string, string>(); //string root = HttpContext.Current.Server.MapPath("~/App_Data");//指定要将文件存入的服务器物理位置 var vProvider = new MultipartFormDataMemoryStreamProvider(); try { // 从流中读取数据 await Request.Content.ReadAsMultipartAsync(vProvider); foreach (var key in vProvider.FormData.AllKeys) {//接收FormData vDic.Add(key, vProvider.FormData[key]); } string vJsonStr = vDic["Json"]; if (vJsonStr != null && vJsonStr != "" && vProvider.FileContents.Count > 0) { JavaScriptSerializer vJSC = new System.Web.Script.Serialization.JavaScriptSerializer(); UploadFileStruct value = vJSC.Deserialize <UploadFileStruct>(vJsonStr); // 获取流中所有的文件 for (int i = 0; i < vProvider.FileContents.Count; i++) { var vFileContent = vProvider.FileContents[i]; var vFileInfo = value.Files[i]; var vStream = await vFileContent.ReadAsStreamAsync(); byte[] vBody = new byte[vStream.Length]; vStream.Read(vBody, 0, vBody.Length); FilesManage vFilesManage = new FilesManage(); vResult = vFilesManage.AddFile(value.UsersAuthor.UserID, vFileInfo.AreaCode, vFileInfo.UnitName, vFileInfo.FileName, vFileInfo.Author, vBody); if (!vResult) { break; } else { UserOperateLog vUserOperateLog = new UserOperateLog(); vUserOperateLog.WriteLog(value.UsersAuthor.UserID, value.UsersAuthor.UserName, string.Format("上传文件,文件名[{0}]", vFileInfo.FileName)); } } } } catch { throw; } return(vResult); }