jQuery Ajax上傳文件

二級標(biāo)題

FormData 對象的使用
第一種方式,html如下:

<form id="uploadForm" enctype="multipart/form-data">
    <input id="file" type="file" name="file"/>
    <button id="upload" type="button">upload</button>
</form>

javascript代碼

$.ajax({
    url: '/upload',
    type: 'POST',
    cache: false,
    data: new FormData($('#uploadForm')[0]),
    processData: false,
    contentType: false
}).done(function(res) {
}).fail(function(res) {});

這里要注意幾點(diǎn):

  • processData設(shè)置為false。因?yàn)閐ata值是FormData對象,不需要對數(shù)據(jù)做處理。
  • <form>標(biāo)簽添加enctype="multipart/form-data"屬性。
  • cache設(shè)置為false,上傳文件不需要緩存。
  • contentType設(shè)置為false。因?yàn)槭怯?lt;form>表單構(gòu)造的FormData對象,且已經(jīng)聲明了屬性
    enctype="multipart/form-data",所以這里設(shè)置為false。

使用FormData對象添加字段方式上傳文件

html如下

<div id="uploadForm">
    <input id="file" type="file"/>
    <button id="upload" type="button">upload</button>
</div>

這里沒有<form>標(biāo)簽,也沒有enctype="multipart/form-data"屬性。

var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
    url: '/upload',
    type: 'POST',
    cache: false,
    data: formData,
    processData: false,
    contentType: false
}).done(function(res) {
}).fail(function(res) {});

有幾處需要注意的地方

  • append()的第二個參數(shù)應(yīng)是文件對象,即$('#file')[0].files[0]。
  • contentType也要設(shè)置為‘false’。

從代碼$('#file')[0].files[0]中可以看到一個<input type="file">標(biāo)簽?zāi)軌蛏蟼鞫鄠€文件,
只需要在<input type="file">里添加multiple或multiple="multiple"屬性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • FormData對象,是可以使用一系列的鍵值對來模擬一個完整的表單,然后使用XMLHttpRequest發(fā)送這個"...
    Agreal閱讀 190,615評論 49 149
  • 模擬前臺html頁面 1.jQuery插件AjaxFileUpload用來實(shí)現(xiàn)ajax文件上傳 2.通過jQuer...
    胡自鮮閱讀 995評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 實(shí)現(xiàn)文件的上傳主要有兩種方式: 使用form表單提交上傳 html代碼如下: 此時的JavaScript代碼如下:...
    小m_up閱讀 910評論 0 1
  • 前端無法像原生APP一樣直接操作本地文件,否則的話打開個網(wǎng)頁就能把用戶電腦上的文件偷光了,所以需要通過用戶觸發(fā),用...
    雷波_viho閱讀 879評論 0 1

友情鏈接更多精彩內(nèi)容