asp.net core多文件分块同时上传组件使用详解
服务器端
引用 nuget 包:JMS.FileUploader.AspNetCore
然后启用上传组件:
app.UseAuthorization(); app.MapControllers(); //启用上传组件,并限制单个文件最大100M app.UseJmsFileUploader(1024*102400); app.Run();
在 Controller 里面,写个 Test 函数,处理上传的文件:
[ApiController] [Route("[controller]/[action]")] public class MainController : ControllerBase { [HttpPost] public string Test([FromBody] object body) { var customHeader = Request.Headers["Custom-Header"]; //临时文件路径 var filepaths = Request.Headers["FilePath"]; //文件名 var filenames = Request.Headers["Name"]; return filenames; } }
文件上传完毕,保存在临时文件中,Request.Headers["FilePath"] 可以读取这些文件的路径,如果确定要保留这些文件,用 File.Move 把它们移到你的目标文件夹当中;
Request.Headers["Name"] 则是读取文件名。
前端
引入 jms-uploader 组件:
import JmsUploader from "jms-uploader"
html 元素:
<input id="file1" multiple type="file" /> <input id="file2" multiple type="file" /> <button onclick="upload()"> upload </button> <div id="info"></div>
javascript 脚本:
async function upload() { //自定义请求头 var headers = function () { return { "Custom-Header": "test" }; }; //提交的body var dataBody = { name: "abc" }; var uploader = new JmsUploader("http://localhost:5200/main/test", [document.querySelector("#file1").files, document.querySelector("#file2").files], headers, dataBody); uploader.setPartSize(1024);//设置分块大小,默认是102400 uploader.onUploading = function (percent, uploadedSize, totalSize) { document.querySelector("#info").innerHTML = percent + "% " + uploadedSize + "," + totalSize; }; var ret = await uploader.upload(); //上传完毕 alert(ret); }
组件源码地址 https://github.com/simpleway2016/JMS.FileUploader
以上就是asp.net core多文件分块同时上传组件使用详解的详细内容,更多关于asp.net core多文件分块上传的资料请关注脚本之家其它相关文章!
相关文章
FileUpload使用Javascript检查扩展名是否有效实现思路
在JavaScript获取FileUpload控件的文件路径,并取得路径中的文件扩展名,再与阵列中的扩展名比较,如果存在,说明上传的文件是有效的,反之无效,感兴趣的朋友可以了解下,或许对你有所帮助2013-02-02asp.net Menu控件+SQLServer实现动态多级菜单
asp.net Menu控件+SQLServer实现动态多级菜单的代码,需要的朋友可以参考下。2011-12-12
最新评论