找回密码
 会员注册
查看: 203|回复: 0

ASP.NET Web API实现简单的文件下载与上传

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962992
发表于 2024-2-29 08:15:23 | 显示全部楼层 |阅读模式

ASP.NET Web API实现简单的文件下载与上传。首先创建一个ASP.NET Web API项目,然后在项目下创建FileRoot目录并在该目录下创建ReportTemplate.xlsx文件,用于下面示例的使用。

1、文件下载

示例:实现报表模板文件下载功能。

1.1 后端代码

  1. /// <summary>
  2. /// 下载文件
  3. /// </summary>
  4. [HttpGet]
  5. public HttpResponseMessage DownloadFile()
  6. {
  7. string fileName = "报表模板.xlsx";
  8. string filePath = HttpContext.Current.Server.MapPath("~/") + "FileRoot\" + "ReportTemplate.xlsx";
  9. FileStream stream = new FileStream(filePath, FileMode.Open);
  10. HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
  11. response.Content = new StreamContent(stream);
  12. response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
  13. response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
  14. {
  15. FileName = HttpUtility.UrlEncode(fileName)
  16. };
  17. response.Headers.Add("Access-Control-Expose-Headers", "FileName");
  18. response.Headers.Add("FileName", HttpUtility.UrlEncode(fileName));
  19. return response;
  20. }
复制代码

1.2 前端代码

  1. <a href="http://localhost:51170/api/File/DownloadFile">下载模板</a>
复制代码

2、文件上传

示例:实现上传报表文件功能。

2.1 后端代码

  1. /// <summary>
  2. /// 上传文件
  3. /// </summary>
  4. [HttpPost]
  5. public HttpResponseMessage UploadFile()
  6. {
  7. try
  8. {
  9. //获取参数信息
  10. HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];
  11. HttpRequestBase request = context.Request; //定义传统request对象
  12. string monthly = request.Form["Monthly"]; //获取请求参数:月度
  13. string reportName = request.Form["ReportName"]; //获取请求参数:报表名称
  14. //保存文件
  15. string fileName = String.Format("{0}_{1}.xlsx", monthly, reportName);
  16. string filePath = HttpContext.Current.Server.MapPath("~/") + "FileRoot\" + fileName;
  17. request.Files[0].SaveAs(filePath);
  18. //返回结果
  19. var result = new HttpResponseMessage
  20. {
  21. Content = new StringContent("上传成功", Encoding.GetEncoding("UTF-8"), "application/json")
  22. };
  23. return result;
  24. }
  25. catch (Exception ex)
  26. {
  27. throw ex;
  28. };
  29. }
复制代码

2.2 前端代码

  1. <form action='http://localhost:51170/api/File/UploadFile' method="post" enctype="multipart/form-data">
  2. 报表月份:<input type="text" name="Monthly" value="2018-11" /><br />
  3. 报表名称:<input type="text" name="ReportName" value="财务报表" /><br />
  4. 报表文件:<input type="file" name="file" /><br />
  5. <input type="submit" value="提交" />
  6. </form>
复制代码

 


来源:https://blog.csdn.net/pan_junbiao/article/details/84065952
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-27 00:55 , Processed in 1.083921 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表