使用plupload自定義參數(shù)實現(xiàn)多文件上傳

字號:


    這篇文章主要介紹了使用plupload自定義參數(shù)實現(xiàn)多文件上傳的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    1、在開發(fā)中可能需要用戶附件上傳的功能,實現(xiàn)批量上傳功能其實就將多個上傳任務放到一個集合中,分別上傳。
    2,使用plupload js插件可以很輕松的實現(xiàn)帶參數(shù)的多文件上傳
    3、具體js實現(xiàn)方式
    <script type="text/javascript">
    var map={};//文件id為key,文件類型為value的集合
    // Custom example logic
    var uploader = new plupload.Uploader({
    runtimes : 'html5,flash,silverlight,html4',
    browse_button : 'pickfiles', // you can pass in id...
    container : document.getElementById('container'), // ... or DOM Element itself
    url : '../action/photoUpload.jsp',
    flash_swf_url : '../../js/Moxie.swf',
    silverlight_xap_url : '../../js/Moxie.xap',
    filters : {
    max_file_size : '5mb',
    mime_types : [ {
    title : "圖片類型",
    extensions : "jpg,gif,png"
    } ]
    },
    init : {
    PostInit : function() {
    document.getElementById('uploadfiles').onclick = function() {
    uploader.start();
    return false;
    };
    },
    BeforeUpload:function(up,file){
    //重點在這里,上傳的時候自定義參數(shù)信息
    uploader.setOption("multipart_params",{"apptype":${param.type},"id":${param.id},"fileType":map[file.id]});
    },
    FileUploaded:function(up,file){
    $("#"+file.id+"btn").parent().html("上傳完畢");
    $("#"+file.id+"btn").remove();
    },
    FilesAdded : function(up, files) {
    if($("#fileType").val()==1){
    alert("請選擇附件類型!");
    //清空剛才選擇的文件
    plupload.each(files,function(file) {
    uploader.removeFile(file.id);
    });
    return false;
    }
    plupload.each(files,function(file) {
    map[file.id]=$("#fileType").val();
    $("#uploadTable").append("<tr id='"+file.id+"tr'><td>"+$("#fileType").val()+"</td><td>"+file.name+"</td><td><button type='button' id='"+file.id+"btn' onclick=del('"+file.id+"')>刪除</button> </td><td id='"+file.id+"_progress'></td></tr>");
    });
    },
    UploadProgress : function(up, file) {
    $("#"+file.id+"_progress").html('<span>'+ file.percent + "%</span>");
    },
    Error : function(up, err) {
    alert("此文件上傳失?。?);
    }
    }
    });
    uploader.init();
    //根據(jù)文件id刪除此文件,并且在table中刪除此文件的信息
    function del(id){
    uploader.removeFile(id);
    $("#"+id+"tr").remove();
    map[id]="";
    }
    </script>
    宅男程序猿,文采不行,如果看著累直接復制js,注意頁面上需要有:
    <div id="filelist"></div>
    <div id="container">
    <center>
    提示:必須上傳 "商戶營業(yè)執(zhí)照","稅務登記證明","企業(yè)法人身份證","考察照片","商戶信息調查表","商戶協(xié)議" 才能提交審批!
    </center>
    <label>附件類型:</label> <select name="fileType" id="fileType" >
    <option value="1">-------請選擇-----</option>
    <option value="商戶營業(yè)執(zhí)照">商戶營業(yè)執(zhí)照</option>
    <option value="稅務登記證明">稅務登記證明</option>
    <option value="商戶信息變更表">商戶信息變更表</option>
    <option value="其他">其他</option>
    </select>
    <button id="pickfiles">選擇文件</button>  
    <button id="uploadfiles">批量上傳</button>  
    <button onclick="window.location.reload()">刷新</button>  
    <button onclick="window.close()">關閉窗口</button>
    <table id="uploadTable">
    <tr>
    <td>文件類型</td>
    <td>文件名稱</td>
    <td>操作</td>
    <td>上傳進度</td>
    </tr>
    </table>
    </div>
    以上所述是小編給大家介紹的使用plupload自定義參數(shù)實現(xiàn)多文件上傳,希望對大家有所幫助