fileinput異步多文件上傳刪除


最近使用了bootstrap-fileinput插件,插件本身寫的還不錯,就是文檔有點看不懂,語言邏輯畢竟不是中國人寫的,自己用了一段時間,整理一下

附官網文檔地址:http://www.bootstrap-fileinput.com/options.html

需要引入的bootstrap樣式以及js請自行查找,本處不在復述。

 <div class="form-group">
                <label class="col-sm-2 control-label">圖片:</label>
                <div class="col-sm-4">
                    <input type="file" id="imageFiles" name="imageFiles"  accept="image/*" multiple>

                </div>
</div>
multiple 這是屬性代表的是多文件上傳,如果去掉,那么只能上傳一個文件


/*js代碼初始化*/
$("#imageFiles").fileinput({ /*以下三個屬性是設置初始化動態加載,*/ initialPreviewAsData: true,//允許動態獲取數據預覽 initialPreview:[
                       'localhost/image1',
                       'localhost/image2',
                    ],//動態加載圖片地址url,可以填寫多個使用','隔開,我是通過c標簽forEach循環的地址
                    initialPreviewConfig: [
                            {
                   type:'audio',//這個設置的是預加載的類型 可以是audio video text其他的類型,我沒找到
                   filetype:'audio/mp3',//設置更加具體的預覽類型
                   caption:'123',個初始化預覽文件的標題或者文件名
url:
'/musicTheory/ajaxDeleteImage',//ajax刪除這個文件第url extra: {id: '8456456'}//給url傳入的參數以及名稱 },//對應'localhost/image1'
                {
                                url: '/musicTheory/ajaxDeleteImage', extra: {id: '${musicTheoryImage.id}'} },//對應'localhost/image2'
 ],//該標簽是動態加載的配置項,是以數組的形式,每個數組分別對應initialPreview中的圖片(按照順序)
                    uploadUrl:"/upload/musicTheoryUploadImage", //異步上傳接受請求地址
                    uploadAsync : true, //默認異步上傳
                    showCancel:false,//是否顯示文件名
                    initialPreviewShowDelete:true,//顯示圖片上面的刪除按鈕
                    overwriteInitial:false,//動態加載圖片之后,在重新上傳新的圖片的時候是否清除動態加載的圖片默認是true 清除,false不清除
                    showUpload : false, //是否顯示上傳按鈕,跟隨文本框的那個
                    showRemove : false, //顯示移除按鈕,跟隨文本框的那個
                    showCaption : true,//是否顯示標題,就是那個文本框
                    showPreview : true, //是否顯示預覽,不寫默認為true
                    dropZoneEnabled : true,//是否顯示拖拽區域,默認不寫為true,但是會占用很大區域
                    showUploadedThumbs:false,//上傳完畢之后,清理預覽框中的圖片,默認false清理*/
                    maxFileSize: 0,//單位為kb,如果為0表示不限制文件大小
                    minFilesNum:1,//最小上傳圖片個數
                    maxFilesNum:10,//最大上傳圖片個數
                    //minFileCount: 0,
                    maxFileCount : 10, //表示允許同時上傳的最大文件個數
                    //autoReplace : false,//是否自動替換當前圖片,設置為true時,再次選擇文件,會將當前的文件替換掉。
                    enctype : 'multipart/form-data',
                    validateInitialCount : true,//驗證minFileCount和maxFileCount時是否包含初始預覽文件計數(服務器上載的文件)。默認為false
                    browseOnZoneClick:true,

                    previewFileIconSettings: {
                         'docx': '<i class="fa fa-file-word-o text-primary" ></i>',
                         'xlsx': '<i class="fa fa-file-excel-o text-success"></i>',
                         'pptx': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
                         'jpg': '<i class="fa fa-file-photo-o text-warning"></i>',
                         'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>',
                         'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
                         'doc': '<i class="fa fa-file-word-o text-primary"></i>',
                         'xls': '<i class="fa fa-file-excel-o text-success"></i>',
                         'ppt': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
                         'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>',
                         'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
                         'htm': '<i class="fa fa-file-code-o text-info"></i>',
                         'txt': '<i class="fa fa-file-text-o text-info"></i>',
                         'mov': '<i class="fa fa-file-movie-o text-warning"></i>',
                         'mp3': '<i class="fa fa-file-audio-o text-warning"></i>',
                         'jpg': '<i class="fa fa-file-photo-o text-danger"></i>',
                         'gif': '<i class="fa fa-file-photo-o text-muted"></i>',
                         'png': '<i class="fa fa-file-photo-o text-primary"></i>'
                     },
                    previewFileIcon : "<i class='glyphicon glyphicon-king'></i>",

                    /* layoutTemplates:{
                             actionUpload:'',//去除縮略圖中的上傳圖片
                             actionZoom:'',   //去除縮略圖中的查看詳情預覽的縮略圖標
                             actionDownload:'', //去覽縮略圖中的下載圖標
                             actionDelete:'', //去除縮略圖中的刪除圖標
                         },*/
                    msgFilesTooMany : "選擇上傳的文件數量({n}) 超過允許的最大數值{m}!",
                    allowedFileTypes : [ 'image' ],//配置允許文件上傳的類型 audio video text object
                    allowedPreviewTypes : [ 'image' ],//配置所有的被預覽文件類型
                    allowedPreviewMimeTypes : ["jpg", "jpeg", "gif", "png"],//控制被預覽的所有mime類型
                    language : 'zh'
                });

                $("#imageFiles").on('fileuploaded', function(event, data, previewId, index) {//異步上傳成功結果處理
                    var img= data;//接收后台傳過來的json數據
                    var data=img.response;
                    if(data.code=="0000"){
                        $("#hiddenImageFiles").append("<input type='hidden' name='musicTheoryImageList["+i+"].url' value='"+data.data+"'>");
                        i++;
                    }
                });

                $('#imageFiles').on('filesuccessremove', function(event, id) {//這個是ajax上傳成功之后,點擊縮略圖中的刪除按鈕觸發的事件
                    console.log('Uploaded thumbnail successfully removed');
                    console.log('Event'+event);
                    console.log('Id'+id);
                });

                $('#imageFiles').on('filepreremove', function(event,id,index) {
                   console.log("id:"+id+"index:"+index+"event:"+event);
                });//ajax異步上傳成功之前刪除可以觸發的事件,上傳成功之后再按刪除按鈕,不管用的啊

                $('#imageFiles').on('fileclear', function(event) {//input框中清除按鈕觸發的事件
                   
                        $("[name='musicTheoryImageList"]).remove();
                    
                });

                $("#imageFiles").on('fileerror', function(event, data, msg) {//異步上傳失敗結果處理
                    alert("上傳失敗");
            });
 
         

 

 
        

 


免責聲明!

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



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