from:https://www.cnblogs.com/refuge/p/8534847.HTML
服务端接收文件流代码:
public async Task<httpResponseMessage> ReceivefileByStream()
{ var stream = httpContext.Current.Request.inputStream; if (stream.Length > 0) { var absolutePath = httpContext.Current.Request.MapPath("/img/"); if (!Directory.Exists(absolutePath)) { Directory.CreateDirectory(absolutePath); } var fileType = ""; var bytes = new byte[stream.Length]; stream.Read(bytes,bytes.Length); //前两个字节代表文件类型,这里以 JPG 类型为例 var bs = bytes[0].ToString() + bytes[1].ToString(); if (bs.Equals("255216")) { fileType = ".jpg"; } var path = absolutePath + GuID.NewGuID() + fileType; await Task.Run(() => { using (fileStream fs = new fileStream(path,fileMode.Create,fileAccess.Write)) { fs.Write(bytes,bytes.Length); } }); return Request.CreateResponse(httpStatusCode.OK,"上传成功!"); } else { return Request.CreateErrorResponse(httpStatusCode.BadRequest,"没有文件耶,哥们!"); } }
客户端上传文件流代码:
static string TesthttpClIEntUpload() { var resultStr = string.Empty; httpClIEnt clIEnt = new httpClIEnt(); clIEnt.BaseAddress = new Uri("http://192.168.20.15:57895"); string APIUrl = "API/upload/ReceivefileByStream"; string path = @"C:\Users\xxxx\Desktop\woman.jpg"; fileStream fs = new fileStream(path,fileMode.Open,fileAccess.Read); httpContent content = new StreamContent(fs); var result = clIEnt.PostAsync(APIUrl,content).Result; fs.dispose(); resultStr = result.Content.ReadAsstringAsync().Result; return resultStr;//上传成功 }
httpWebRequest:
static string TesthttpWebRequestUpload() { var resultStr = string.Empty; string url = "http://192.168.20.15:57895/API/upload/ReceivefileByStream"; httpWebRequest request = WebRequest.Createhttp(url); request.Method = "post"; string path = @"C:\Users\xxxx\Desktop\woman.jpg"; fileStream fs = new fileStream(path,fileAccess.Read); var requestStream = request.GetRequestStream(); fs.copyTo(requestStream); fs.dispose(); requestStream.dispose(); var result = request.GetResponseAsync().Result; var responseStream = result.GetResponseStream(); using (StreamReader sm = new StreamReader(responseStream)) { resultStr = sm.ReadToEnd(); } return resultStr;//上传成功 } 总结以上是内存溢出为你收集整理的web api 如何通过接收文件流的方式,接收客户端及前端上传的文件全部内容,希望文章能够帮你解决web api 如何通过接收文件流的方式,接收客户端及前端上传的文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)