服务器端
引用 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多文件分块上传的资料请关注代码网其它相关文章!
发表评论