经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP.net » 查看文章
分享一个 asp.net core 多文件分块同时上传的组件
来源:cnblogs  作者:IWing  时间:2023/12/13 9:11:19  对本文有异议

分享一个可多个文件同时上传、断点续传,并实时反馈上传进度的 Asp.Net core 组件。

服务器端


引用 nuget 包:JMS.FileUploader.AspNetCore

然后启用上传组件:

  1. app.UseAuthorization();
  2. app.MapControllers();
  3. //启用上传组件,并限制单个文件最大100M
  4. app.UseJmsFileUploader(1024*102400);
  5. app.Run();

在 Controller 里面,写个 Test 函数,处理上传的文件:

  1. [ApiController]
  2. [Route("[controller]/[action]")]
  3. public class MainController : ControllerBase
  4. {
  5. [HttpPost]
  6. public string Test([FromBody] object body)
  7. {
  8. var customHeader = Request.Headers["Custom-Header"];
  9. //临时文件路径
  10. var filepaths = Request.Headers["FilePath"];
  11. //文件名
  12. var filenames = Request.Headers["Name"];
  13. return filenames;
  14. }
  15. }

文件上传完毕,保存在临时文件中,Request.Headers["FilePath"] 可以读取这些文件的路径,如果确定要保留这些文件,用 File.Move 把它们移到你的目标文件夹当中;

Request.Headers["Name"] 则是读取文件名。

前端

引入 jms-uploader 组件:

  1. import JmsUploader from "jms-uploader"

html 元素:

  1. <input id="file1" multiple type="file" />
  2. <input id="file2" multiple type="file" />
  3. <button onclick="upload()">
  4. upload
  5. </button>
  6. <div id="info"></div>

javascript 脚本:

  1. async function upload() {
  2. //自定义请求头
  3. var headers = function () {
  4. return { "Custom-Header": "test" };
  5. };
  6. //提交的body
  7. var dataBody = {
  8. name: "abc"
  9. };
  10. var uploader = new JmsUploader("http://localhost:5200/main/test", [document.querySelector("#file1").files, document.querySelector("#file2").files], headers, dataBody);
  11. uploader.setPartSize(1024);//设置分块大小,默认是102400
  12. uploader.onUploading = function (percent, uploadedSize, totalSize) {
  13. document.querySelector("#info").innerHTML = percent + "% " + uploadedSize + "," + totalSize;
  14. };
  15. var ret = await uploader.upload();
  16. //上传完毕
  17. alert(ret);
  18. }


组件源码地址

https://github.com/simpleway2016/JMS.FileUploader.git

原文链接:https://www.cnblogs.com/IWings/p/17894094.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号