使用FormData實(shí)現(xiàn)上傳多個(gè)文件
本文實(shí)例為大家分享了FormData上傳多個(gè)文件的具體代碼,供大家參考,具體內(nèi)容如下
由于項(xiàng)目中使用到,特此寫個(gè)Demo
html代碼:
<html> <head> <title>Title</title> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> </head> <body> <form enctype="multipart/form-data" id="form_example"> <input type="file" id="files" multiple/><br/><br/> <input type="submit" value="提交"/> </form> <div id='file-list-display'></div> </body> </html>
js代碼:
<script type="text/javascript">
$(document).ready(function () {
var fileList = [];
var fileCatcher = document.getElementById('form_example');
var files = document.getElementById("files"), renderFileList;
var fileListDisplay = document.getElementById('file-list-display'), sendFile;
fileCatcher.addEventListener("submit", function (event) {
event.preventDefault();
//上傳文件
sendFile();
});
files.addEventListener("change", function (event) {
for (var i = 0; i < files.files.length; i++) {
fileList.push(files.files[i]);
}
renderFileList();
});
renderFileList = function () {
fileListDisplay.innerHTML = '';
fileList.forEach(function (file, index) {
var fileDisplayEl = document.createElement("p");
fileDisplayEl.innerHTML = (index + 1) + ":" + file.name;
fileListDisplay.appendChild(fileDisplayEl);
})
};
sendFile = function () {
var formData = new FormData();
var request = new XMLHttpRequest();
//循環(huán)添加到formData中
fileList.forEach(function (file) {
formData.append('files', file, file.name);
})
request.open("POST", "/test/upload.do");
request.send(formData);
}
})
</script>
后端使用Spring MVC接收前端文件
配置multipart解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8"/>
Controller:
@RequestMapping("/upload.do")
@ResponseBody
public Object upload(@RequestParam MultipartFile[] files) {
System.out.println(files.length);
return "ok";
}
前端頁(yè)面:

請(qǐng)求:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS中使用FormData上傳文件、圖片的方法
- jQuery用FormData實(shí)現(xiàn)文件上傳的方法
- jQuery Ajax使用FormData對(duì)象上傳文件的方法
- 談?wù)劵趇frame、FormData、FileReader三種無(wú)刷新上傳文件的方法
- JS FormData上傳文件的設(shè)置方法
- jQuery+formdata實(shí)現(xiàn)上傳進(jìn)度特效遇到的問(wèn)題
- 通過(guò)Ajax使用FormData對(duì)象無(wú)刷新上傳文件方法
- vuejs使用FormData實(shí)現(xiàn)ajax上傳圖片文件
- FormData+Ajax實(shí)現(xiàn)上傳進(jìn)度監(jiān)控
- jQuery Ajax使用FormData上傳文件和其他數(shù)據(jù)后端web.py獲取
相關(guān)文章
如何利用JSHint減少JavaScript的錯(cuò)誤
JSHint是一個(gè)社區(qū)驅(qū)動(dòng)用來(lái)檢測(cè)JavaScript代碼中錯(cuò)誤和潛在的問(wèn)題以及執(zhí)行團(tuán)隊(duì)的編碼規(guī)范工具。它非常靈活,因此可以很容易地適應(yīng)您特定的編碼規(guī)則和你的代碼執(zhí)行環(huán)境。JSHint將永遠(yuǎn)保持開源的方式。2016-08-08
HTML+CSS+JS實(shí)現(xiàn)抓娃娃機(jī)游戲
這篇文章主要介紹了如何利用HTML+CSS+JS制作抓娃娃機(jī)游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Javascript中匿名函數(shù)的調(diào)用與寫法實(shí)例詳解(多種)
js中定義函數(shù)的方式有很多種,函數(shù)直接量就是其中一種,下面通過(guò)本文給大家介紹匿名函數(shù)是如何調(diào)用的及匿名函數(shù)的n中寫法,對(duì)js匿名函數(shù)調(diào)用,js匿名函數(shù)寫法相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
C#中TrimStart,TrimEnd,Trim在javascript上的實(shí)現(xiàn)
今天在后臺(tái)寫了個(gè)類,后來(lái)才發(fā)現(xiàn),需要在JS上做..于是把代碼拷到j(luò)s上進(jìn)行修改,代碼中用到TrimStart,TrimEnd,Trim等方法,在網(wǎng)上找半天竟然沒(méi)找到.要么就只能清除空格的!2011-01-01
詳解ES6通過(guò)WeakMap解決內(nèi)存泄漏問(wèn)題
本篇文章主要介紹了詳解ES6通過(guò)WeakMap解決內(nèi)存泄漏問(wèn)題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
JavaScript獲取服務(wù)器時(shí)間的方法詳解
這篇文章主要介紹了JavaScript獲取服務(wù)器時(shí)間的方法,結(jié)合實(shí)例形式詳細(xì)分析了javascript基于ajax獲取服務(wù)器時(shí)間的相關(guān)操作技巧,需要的朋友可以參考下2016-12-12
js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)代碼分享
這篇文章主要介紹了js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)特效,相冊(cè)可以從上方或者下方隨意切換,推薦給大家,有需要的小伙伴可以參考下。2015-08-08

