扫码关注官方订阅号
我用FormData+jQuery实现AJAX无刷新上传,但是一次只能上传一个文件。怎么弄实现一次性上传多张图片
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
可以用数组形式,我贴代码了html 部分<li class="list-group-item disabled select-file-p">
<input type="file" multiple="true" class="input-sm clear-l-r-padding select-file" data-uploadtype="photo"/>
</li>js部分var i,data = new FormData();...for (i = 0; i < $('.select-file').files.length; i++) {
data.append('file[]', this.files[i]); }
...//省略代码若干...在选择完成后调用下面$.ajax$.ajax({
url: 'url' type: "POST", data: data, dataType: 'json', processData: false,// *重要,确认为false contentType: false, beforeSend: function () { ... }, success: function (res) { console.log(res);
},
error: function (res) { ...}
});php 部分 接收数组$fileField='file';$name = $_FILES$fileField;
$tmp_name = $_FILES[$fileField]['tmp_name']; $size = $_FILES[$fileField]['size']; $error = $_FILES[$fileField]['error'];
/ 如果是多个文件上传则$file["name"]会是一个数组 / if(is_Array($name)){ $errors=array();/多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传 /for($i = 0; $i < count($name); $i++){ /设置文件信息 / if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {
if(!$this->checkFileSize() || !$this->checkFileType()){ $errors[] = $this->getError(); $return=false; }
}else{
$errors[] = $this->getError(); $return=false;
} / 如果有问题,则重新初使化属性 / if(!$return)
$this->setFiles();
}
参考localResizeIMG
上传多个文件的时候,append 应该这样写
data.append('file[]', $('.select-file')[i].file[0]);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
可以用数组形式,我贴代码了
html 部分
<li class="list-group-item disabled select-file-p">
</li>
js部分
var i,
data = new FormData();
...
for (i = 0; i < $('.select-file').files.length; i++) {
...//省略代码若干...在选择完成后调用下面$.ajax
$.ajax({
},
});
php 部分 接收数组
$fileField='file';
$name = $_FILES$fileField;
/ 如果是多个文件上传则$file["name"]会是一个数组 /
if(is_Array($name)){
$errors=array();
/多个文件上传则循环处理 , 这个循环只有检查上传文件的作用,并没有真正上传 /
for($i = 0; $i < count($name); $i++){
/设置文件信息 /
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i] )) {
}else{
}
/ 如果有问题,则重新初使化属性 /
if(!$return)
}
参考localResizeIMG
上传多个文件的时候,append 应该这样写
data.append('file[]', $('.select-file')[i].file[0]);