亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何用FormData實現多文件上傳

如何用FormData實現多文件上傳

慕森卡 2018-10-10 13:15:08
我用FormData+jQuery實現AJAX無刷新上傳,但是一次只能上傳一個文件。怎么弄實現一次性上傳多張圖片
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

可以用數組形式,我貼代碼了
html 部分
<li class="list-group-item disabled select-file-div">

<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,// *重要,確認為falsecontentType: 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();

}


查看完整回答
反對 回復 2018-11-12
  • 1 回答
  • 0 關注
  • 1427 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號