webuploader解決不能重復上傳問題及一些常見問題處理


uploader = WebUploader.create({ swf: 'resources/js/webuploader-0.1.5/Uploader.swf', // 文件接收服務端。
 server: settings.url, // 選擇文件的按鈕。可選。 // 內部根據當前運行是創建,可能是input元素,也可能是flash。
    pick : '#picker', // 不壓縮image, 默認如果是jpeg,文件上傳前會壓縮一把再上傳!
    resize : false });

  以上代碼是不支持重復上傳:根據查看webuploader文檔里面有個duplicate屬性,是可選的,true為可重復,false為不可重復,默認為undifind,也是不可重復。所以只需在屬性的后面追加  duplicate:true  就可以實現重復上傳。

uploader = WebUploader.create({ swf: 'resources/js/webuploader-0.1.5/Uploader.swf', // 文件接收服務端。 
 server: settings.url, // 選擇文件的按鈕。可選。 // 內部根據當前運行是創建,可能是input元素,也可能是flash. 
    pick : '#picker', // 不壓縮image, 默認如果是jpeg,文件上傳前會壓縮一把再上傳! 
    resize : false, //可重復上傳 duplicate :true }); 

   文件上傳控件:webuploader + jQuery,開源而且好用。但是在使用過程中出現一些問題:

  1、上傳多張圖片,圖片的順序會亂掉。解決方法:threads:1

  2、文件沒有按照原來比例上傳,1M多的文件會被壓縮,解決方法:compress: false

  3、選擇文件的時候瀏覽器反應遲鈍,解決方法:

accept: { title: 'Images', extensions: "gif,jpg,jpeg,png", mimeTypes: ".gif,.jpg,.jpeg,.png" }

  4、ie瀏覽器,上傳文件失敗,有可能是"swf"定義的文件路徑不對。ie瀏覽器是用flash模式上傳文件的。

var fileCount=0; var fileSize=0; var uploader; var errorarr=new Array(); function initFile(){ uploader = WebUploader.create({ auto: true, // swf文件路徑
        swf : '/ueditor/third-party/webuploader/Uploader.swf', // 文件接收服務端。
        server : "upFiles.do", // 選擇文件的按鈕。可選。 // 內部根據當前運行是創建,可能是input元素,也可能是flash.
        pick : '#filePicker', // 不壓縮image, 默認如果是jpeg,文件上傳前會壓縮一把再上傳! //resize : false,//這個不起作用,要用compress
        compress: false,//webuploader默認壓縮圖片,設置compress:false,可以按照原始比例上傳圖片
 accept: { title: 'Images', extensions: "gif,jpg,jpeg,png", mimeTypes: ".gif,.jpg,.jpeg,.png"//解決WebUploader在谷歌瀏覽器中反應緩慢遲鈍,雖然解決了問題,但是火狐瀏覽器,選擇文件的時候不做限制了
 }, fileVal:"upfile",//設置文件上傳域的name。
        fileSizeLimit:500 * 1024 * 1024,//所有文件上傳的大小限制,單位字節
        fileSingleSizeLimit:2 * 1024 * 1024,//單張圖片上傳限制大小,單位字節 
        fileNumLimit:20,//文件上傳數量限制
        threads:1//上傳並發數。允許同時最大上傳進程數,為了保證文件上傳順序
 }); /*當文件被加入隊列以后觸發。 @param file File對象 @param ret 服務器返回的數據 */ uploader.on('uploadSuccess', function (file, ret) { var $file = $('#' + file.id); try { if (ret.state == 'SUCCESS') { var json={}; json.dataid=ret.picId; json.src=ret.url; json.width=ret.width; json.height=ret.height; if(!putPicMap(json)){//加入圖片列表
                    return false; } }else { //console.log("faile","aa");
 } } catch (e) { //console.log("faile","bb");
 } }); /** *文件上傳失敗 *code=F_DUPLICATE 上傳文件重復 **/ uploader.on('error', function (code, file) { var name=file.name; var str=""; switch(code){ case "F_DUPLICATE": str=name+"文件重復"; errorarr.push(str); break; case "Q_TYPE_DENIED": str=name+"文件類型 不允許"; errorarr.push(str); break; case "F_EXCEED_SIZE": var imageMaxSize = 9;//通過計算
            str=name+"文件大小超出限制"+imageMaxSize+"M"; errorarr.push(str); break; case "Q_EXCEED_SIZE_LIMIT": errorarr.push("超出空間文件大小"); break; case "Q_EXCEED_NUM_LIMIT": errorarr.push("抱歉,超過每次上傳數量圖片限制"); default: str=name+" Error:"+code; } }); uploader.on( 'all', function( type, arg1, arg2 ) { if(type=="startUpload"){//開始上傳
 uploadchange(); }else if(type=="uploadFinished"){//上傳結束
            if(errorarr.length>0){ alert(errorarr.join("\n")); } //清空錯誤信息
            errorarr.length=0; } }); } /** * 本地上傳圖片,改變上傳的相冊,文件上傳的路徑也會改變 */ function uploadchange(){ //這里可以限制文件上傳個數,未做
    /* 添加額外的GET參數 */ uploader.option('server', "upFiles.do?aa=3"); }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM