擴展 ajaxupload.js ,支持客戶端判斷上傳文件的大小

        onSubmit: function(file, extension){},

修改爲

        onSubmit: function(file, extension, size){},

 

        if (! (settings.onSubmit.call(this, file, getExt(file))) == false)) {

修改爲

        if (! (settings.onSubmit.call(this, file, getExt(file), getSize('absFileInput')) == false)) {

 

增加函數 getSize, 源自 http://www.cnblogs.com/majiang/p/5120740.html

function getSize(elementID) {
    var file = document.getElementById(elementID);
    var size = 0;
    if (file.value) {
        if (file.files) {
            size = file.files[0].size;
        }
        else {
            var imgid = "img" + elementID;
            var obj_img = document.getElementById(imgid);
            obj_img.dynsrc = file.value;
            size = obj_img.fileSize;
        }
    }
    return size;
}


最後修改提交腳本

new AjaxUpload(button, {
  //...
  onSubmit: function (file, ext, size) {
    if (!(ext && /^(pdf)$/.test(ext))){
       alert(file +' 不是允許上傳的文件類型');
    // cancel upload
    return false;
    }
    if(size>20*1000*1000){
      alert(file+' 超出文件上傳的大小限制');
      return false;
    }
  },
  //...
)};


IE 11,10-7 測試通過

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章