看了很多前辈的内容,大概有两种写法,
1.用 MultipartFileData 类
接收文件后,会自动保存,名命方式是BodyPart_xxxxxx,没有后缀名的一个文件
想要按照自己的名命方式存的话,需要再加一步重命名的操作,
删除同理。
#方法1.
1 // POST api/ Task
2 [HttpPost]
3 public async Task Post(int id = 0)
4 {
5 Log.WriteLog("文件上传接口信息处理开始", CommConst.LOG_NORMAL, pageId);
6
7 #region 返回用类
8 // 返回用
9 fileUploadResult fResult = new fileUploadResult();
10 #endregion
11
12 // Check if the request contains multipart/form-data.
13 // 检查该请求是否含有multipart/form-data
14 if (!Request.Content.IsMimeMultipartContent())
15 {
16 fResult.errCode = ResultConst.UPLOAD_FAILURE_CODE;
17 fResult.message = "存在multipart/form-data!";
18 fResult.status = ResultConst.UPLOAD_FAILURE_STATUS;
19 throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
20 }
21
22 try
23 {
24 #region 方法1.自动保存.使用中
25 //可以用这个返回之后的键值对-此处有返回类故废弃不用
26 //Dictionary dic = new Dictionary();
27 //指定要将文件存入的服务器物理位置
28 string root = HttpContext.Current.Server.MapPath("~/App_Data");
29 var provider = new MultipartFormDataStreamProvider(root);
30
31 // Read the form data.
32 // 读取表单数据
33 await Request.Content.ReadAsMultipartAsync(provider);
34
35 if (Checker.IsNotEmpty(provider.FileData))
36 {
37 fResult.errCode = ResultConst.UPLOAD_SUCCESS_CODE;
38
39 // This illustrates how to get the file names.
40 // 以下描述如何获取文件名
41 foreach (MultipartFileData file in provid

本文介绍了两种在C# .NET WebApi中实现文件上传接口的方法。第一种利用MultipartFileData类,文件会被自动保存并需要后续重命名。第二种通过HttpContext.Current.Request.Files获取文件,可手动控制文件保存和命名。文章详细展示了每种方法的代码实现,并提供了自定义返回类fileUploadResult的定义。
最低0.47元/天 解锁文章
4201

被折叠的 条评论
为什么被折叠?



