FormData實現上傳多圖片,學習使用FormData

來源:互聯網
上載者:User

標籤:awesome   orm   自動   success   lin   ajax   ipa   sof   Enctype   

FormData對象是為序列化表以及建立與表單格式相同的資料(當然是用於XHR傳輸)提供便利。

今天我們使用dropzone和FormData實現多檔案上傳功能。

var SAMP = null;        //Dropzone對象      SAMP = new Dropzone("#dropzone",    {              url: "#",  //後台響應的連結              maxFiles: 4,    //最大可以傳輸的檔案數量  目前我們設定為1              maxFilesize: 2048, //檔案大小的限制              acceptedFiles: ".png,.jpg,.gif,.jpeg,.bmp", // 檔案格式的限制              autoProcessQueue:false,  //檔案是否自動傳回到後台              myAwesomeDropzone:false,    })

  我們設定檔案不自動上傳,而通過控制項按鈕實現上傳功能。首先我們建立一個Dropzone對象,設定上傳的最大檔案數量,檔案大小等。

  var myFormData = new FormData()

  建立Form Data對象

 SAMP.on("addedfile", function(file) {    myFormData.append(file.name, file) })

  給Dropzone對象註冊addedfile事件,當上傳檔案時,FormData對象的append()函數是以索引值對的方式向myFormData成對成對的增添圖片對象。

$.ajax({
       type:‘POST‘,  url:"/upload-img/",       data:myFormData, processData: false,//*必須寫 contentType: false,//*必須寫
       success:function(data){
             ...
        },
      error:function(XMLHttpRequest, textStatus, errorThrown){
            ...
         }
});

  在使用FormData對象通過Ajax向後台傳資料時,必須在選項中設定"processData: false,contentType: false,"兩項,否則會報錯。

  processData設定為false。因為data值是FormData對象,不需要對資料做處理。

  contentType設定為false。因為是由<form>表單構造的FormData對象,且已經聲明了屬性enctype="multipart/form-data",所以這裡設定為false。

FormData實現上傳多圖片,學習使用FormData

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.