JavaScript使用Ajax上傳文件的示例代碼
本文介紹了JavaScript使用Ajax上傳文件的示例代碼,分享給大家,具體如下:
實(shí)現(xiàn)文件的上傳主要有兩種方式:
使用form表單提交上傳
html代碼如下:
<form id="uploadForm" enctype="multipart/form-data"> <input id="file" type="file" name="file"/> <button id="upload" type="button">上傳</button> </form>
此時(shí)的JavaScript代碼如下:
var formData = new FormDate($('#uploadForm')[0]);
$.ajax({
url: 'http://10.10.2.254:8080/file/associateupload',
type: 'POST',
cache: false,
data: formData,
processData: false,
contentType: false,
success:function(res){
console.log(res);
}
});
需要注意:
- processData設(shè)置為false。因?yàn)閐ata值是FormData對(duì)象,不需要對(duì)數(shù)據(jù)做處理。
- <form>標(biāo)簽添加enctype="multipart/form-data"屬性。
- cache設(shè)置為false,上傳文件不需要緩存。
- contentType設(shè)置為false。因?yàn)槭怯?lt;form>表單構(gòu)造的FormData對(duì)象,且已經(jīng)聲明了屬性enctype="multipart/form-data",所以這里設(shè)置為false。
使用FormData對(duì)象添加字段方式上傳文件
html代碼如下:
<div id="uploadDiv"> <input id="file" type="file"/> <button id="upload" type="button">上傳</button> </div>
JavaScript實(shí)現(xiàn)如下:
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
url: '/upload',
type: 'POST',
cache: false,
data: formData,
processData: false,
contentType: false,
success:function(res){
console.log(res);
}
這里有幾處不一樣:
- append()的第二個(gè)參數(shù)應(yīng)是文件對(duì)象,即$('#file')[0].files[0]。contentType也要設(shè)置為false。
- 從代碼$('#file')[0].files[0]中可以看到一個(gè)<input type="file">標(biāo)簽?zāi)軌蛏蟼鞫鄠€(gè)文件,只需要在<input type="file">里添加multiple或multiple="multiple"屬性。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Struts2.5 利用Ajax將json數(shù)據(jù)傳值到JSP的實(shí)例
- JavaScript 通過(guò)Ajax 動(dòng)態(tài)加載CheckBox復(fù)選框
- 淺談Vue.js應(yīng)用的四種AJAX請(qǐng)求數(shù)據(jù)模式
- 基于jstree使用AJAX請(qǐng)求獲取數(shù)據(jù)形成樹(shù)
- vuejs使用FormData實(shí)現(xiàn)ajax上傳圖片文件
- JS+Ajax實(shí)現(xiàn)百度智能搜索框
- js如何編寫(xiě)簡(jiǎn)單的ajax方法庫(kù)
- 原生js中ajax訪問(wèn)的實(shí)例詳解
相關(guān)文章
TypeScript接口interface的高級(jí)用法詳解
interface 是typescript核心內(nèi)容,用來(lái)定義規(guī)范,無(wú)論是函數(shù),數(shù)組或者對(duì)象,還是類(lèi)都可以用接口interface來(lái)進(jìn)行規(guī)范,而接口本身也是可以繼承和擴(kuò)展的,本文給大家詳細(xì)介紹了TypeScript interface的高級(jí)用法,需要的朋友可以參考下2025-03-03
javascript實(shí)現(xiàn)瀑布流動(dòng)態(tài)加載圖片原理
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)瀑布流動(dòng)態(tài)加載圖片原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
javascript中的with語(yǔ)句學(xué)習(xí)筆記及用法
在本篇文章里小編給大家分享的是關(guān)于javascript中的with語(yǔ)句學(xué)習(xí)筆記及用法,有需要的朋友們可以學(xué)習(xí)下。2020-02-02
ES6基礎(chǔ)之展開(kāi)語(yǔ)法(Spread syntax)
這篇文章主要介紹了ES6基礎(chǔ)之展開(kāi)語(yǔ)法(Spread syntax),主要介紹了擴(kuò)展語(yǔ)法的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

