js 限制上傳文件的大小
上傳文件是一個網站經常用到的功能,在前端對文件的大小進行限制也是很有必要的。今天寫了一段代碼來監聽input的change事件,來進行上傳文件大小的控制
$("#ms_upload_file").change(function(){
//檢驗非空和文件大小
if($(this).val() !== '' && checkSize(this)) {
//其他操作
}
});
/**
* 函數:檢查上傳文件大小
* 輸入:input的js對象
* 輸出:
**/
function checkSize(input) {
var Sys = {};
var flag;
var filesize = 0;
//判斷瀏覽器種類
if (navigator.userAgent.indexOf("MSIE") > 0) {
Sys.ie=true;
}
if (navigator.userAgent.indexOf("Firefox")>0) {
Sys.firefox=true;
}
//獲取文件大小
if (Sys.firefox) {
filesize = input.files[0].size;
} else if (Sys.ie){
var fileobject = new ActiveXObject ("Scripting.FileSystemObject");//獲取上傳文件的對象
var file = fileobject.GetFile (input.value);//獲取上傳的文件
filesize = file.Size;//文件大小
}
//判斷是否符合要求
if (filesize / (1024 * 1024) < 5 ) {
flag = true;
} else {
alert("附件過大,建議不要超過5M!");
flag = false;
}
return flag;
}