ajax formdata 多文件,如何用FormData实现多文件上传

可以用数组形式,我贴代码了

html 部分

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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值