如何用FormData实现多文件上传

我用FormData+jQuery实现AJAX无刷新上传,但是一次只能上传一个文件。
怎么弄实现一次性上传多张图片

慕森卡
浏览 1414回答 1
1回答

胡子哥哥

可以用数组形式,我贴代码了html 部分<li class="list-group-item disabled select-file-div"><input&nbsp;type="file"&nbsp;multiple="true"&nbsp;class="input-sm&nbsp;clear-l-r-padding&nbsp;select-file"&nbsp;data-uploadtype="photo"/></li>js部分var i,data = new FormData();...for (i = 0; i < $('.select-file').files.length; i++) {&nbsp;&nbsp;&nbsp;&nbsp;data.append('file[]',&nbsp;this.files[i]); &nbsp;}...//省略代码若干...在选择完成后调用下面$.ajax$.ajax({url:&nbsp;'url'type:&nbsp;"POST",data:&nbsp;data,dataType:&nbsp;'json',processData:&nbsp;false,//&nbsp;*重要,确认为falsecontentType:&nbsp;false,beforeSend:&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;},success:&nbsp;function&nbsp;(res)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(res);},error:&nbsp;function&nbsp;(res)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;...}});php 部分 接收数组$fileField='file';$name = $_FILES$fileField;&nbsp;&nbsp;$tmp_name&nbsp;=&nbsp;$_FILES[$fileField]['tmp_name']; &nbsp;&nbsp;$size&nbsp;=&nbsp;$_FILES[$fileField]['size']; &nbsp;&nbsp;$error&nbsp;=&nbsp;$_FILES[$fileField]['error'];/&nbsp;如果是多个文件上传则$file["name"]会是一个数组&nbsp;/if(is_Array($name)){&nbsp;$errors=array();/多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传&nbsp;/for($i = 0; $i < count($name); $i++){&nbsp;/设置文件信息&nbsp;/if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {if(!$this->checkFileSize()&nbsp;||&nbsp;!$this->checkFileType()){ &nbsp;&nbsp;$errors[]&nbsp;=&nbsp;$this->getError(); &nbsp;&nbsp;$return=false;&nbsp; }}else{$errors[]&nbsp;=&nbsp;$this->getError();$return=false;}/&nbsp;如果有问题,则重新初使化属性&nbsp;/if(!$return)$this->setFiles();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript