通常10M如下的文件上傳經過設置Web.Config,再用VS自帶的FileUpload控件就能夠了,可是若是要上傳100M甚至1G的文件就不能這樣上傳了。我這裏分享一下我本身開發的一套大文件上傳控件供你們參考 javascript
這是前端代碼: 前端
<body> vue
<div id="app"> java
{{ message }} 數據庫
<http-uploader6></http-uploader6> 瀏覽器
</div> 網絡
<script type="text/javascript"> app
// 定義一個名爲 button-counter 的新組件 ui
Vue.component('http-uploader6', { this
data() {
return {
upApp: null
}
},
mounted() {
//初始化up6
const _this = this;
this.upApp = new HttpUploaderMgr();
this.upApp.load_to("up6-div");
},
destoryed() {
//this.editor.destory();
},
methods: {
open_file: function () { this.upApp.openFile(); }
, open_folder: function () { this.upApp.openFolder(); }
},
template: '<div id="up6-div"></div>'
});
var app = new Vue({
el: '#app',
data: {
message: '演示up6如何在vue中使用'
}
});
</script>
</body>
這是後臺存儲部分代碼:
using System.Web;
using up6.db.model;
namespace up6.db.biz
{
/// <summary>
/// 路徑生成器基類
/// 提供文件或文件夾的存儲路徑
/// </summary>
public class PathBuilder
{
/// <summary>
/// 根級存儲路徑,
/// </summary>
/// <returns></returns>
public string getRoot()
{
return HttpContext.Current.Server.MapPath("/upload");
}
public virtual string genFolder(ref FileInf fd)
{
return string.Empty;
}
public virtual string genFile(int uid, ref FileInf f)
{
return string.Empty;
}
public virtual string genFile(int uid, string md5, string nameLoc)
{
return string.Empty;
}
}
}
文件和文件夾批量上傳
當網絡問題致使傳輸錯誤時,只須要重傳出錯分片,而不是整個文件。另外分片傳輸可以更加實時的跟蹤上傳進度。
上傳成功後打開咱們的存儲文件夾查看,發現自動生成了幾個文件夾,打開文件夾確認上傳文件成功
文件及文件夾批量下載
首先勾選多個上傳的文件或文件夾,你會發現多了一個下載按鈕
而後點擊下載按鈕,設置下載目錄文件夾
設置完成後繼續點擊下載按鈕,頁面的右下角出現了下載面板,你選擇的文件已出如今目錄中,而後點擊所有下載,或者單個點擊繼續,自動加載未上傳完的任務。在刷新瀏覽器或重啓電腦後任然能夠自動加載未完成的任務
下載完成後打開咱們設置的下載目錄文件夾,發現需下載的文件或文件夾確認已下載成功,經確認文件夾內的內容與下載文件夾內容一致
數據庫記錄
產品介紹官網:https://dwz.cn/fgXtRtnu