分享一个 asp.net core 多文件分块同时上传的组件
生活随笔
收集整理的這篇文章主要介紹了
分享一个 asp.net core 多文件分块同时上传的组件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分享一個可多個文件同時上傳、斷點續傳,并實時反饋上傳進度的 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.git
總結
以上是生活随笔為你收集整理的分享一个 asp.net core 多文件分块同时上传的组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: internet属于什么网?(什么是A.
- 下一篇: 青桔单车在微信扣费吗(汉典青字的基本解释