因爲項目部署在百度雲上,所以有關附件的上傳就使用了 baidubce.bos.Uploader。其中有一個屬性 max_file_size
可以限制上傳附件的大小。但是一旦附件大小超過這個值以後,此附件就會被忽略。換句話說,選擇附件點擊確定後,頁面不會有任何反應。這樣的話對用戶不太友好,最好是超出限制大小可以爲用戶展示提示語句。
該插件所支持的事件中,有一個 FileFiltered
事件。該函數會在附件因爲某些原因被過濾了的時候調用。因此將相關操作提示寫在這個事件中就可以了。
var uploader = new baidubce.bos.Uploader({
init: {
FileFiltered: function (_, file) {
// 如果文件因爲某些原因被過濾了,調用這個函數
//文件大小
var size = file.size;
if(( size / ( 1024 * 1024 )).toFixed(2) >= 100){
alert("附件不得超過100M,請覈對後上傳!");
return false;
}
}
}
});
最後附上該插件所支持的所有事件,方便以後查詢記憶。
var uploader = new baidubce.bos.Uploader({
init: {
PostInit: function () {
// uploader 初始化完畢之後,調用這個函數
},
FileFiltered: function (_, file) {
// 如果文件因爲某些原因被過濾了,調用這個函數
},
FilesAdded: function (_, files) {
// 當文件被加入到隊列裏面,調用這個函數
},
BeforeUpload: function (_, file) {
// 當某個文件開始上傳的時候,調用這個函數
},
UploadProgress: function (_, file, progress, event) {
// 文件的上傳進度
},
Key: function(_, file) {
// 可以設置需要保存的文件路徑
},
FileUploaded: function (_, file, info) {
// 文件上傳成功之後,調用這個函數
},
UploadPartProgress: function (_, file, progress, event) {
// 分片上傳的時候,單個分片的上傳進度
},
Error: function (_, error, file) {
// 如果上傳的過程中出錯了,調用這個函數
},
UploadComplete: function () {
// 隊列裏面的文件上傳結束了,調用這個函數
}
}
});