【问题标题】:PHP $_FILES - Last file of multiple file only uploadingPHP $_FILES - 仅上传多个文件的最后一个文件
【发布时间】:2021-08-02 11:15:48
【问题描述】:

我的问题非常相似 Similar Question

我尽了最大努力,最后,我在这里发布了我的查询。希望能解决以下问题。

问题 我正在尝试通过 php 上传多个文件。 但是在 $_FILES 数组中获取一个文件。

其他元数据

  1. php.ini 配置。 file_uploads = 开启
  2. php.ini 配置。 upload_max_filesize = 2M
  3. php.ini 配置。 max_file_uploads = 20
  4. PHP 版本 8
  5. 错误日志中没有错误

index.html

//^Ajax to upload file
function jx_ajax_upload_file(xData) {
     return $.ajax({
     url: "php.php",
     type: "post",
     data: xData,
     cache: false,
     contentType: false,
     processData: false,
     async: true,
     });
   }
//Ajax Error Message
function error() {
    console.log("connection error");
}

 // Submit Button
 document.querySelector("#submit").addEventListener("click", () => {
 let loadedFiles = document.querySelector("#los").files;
 let filesCount = loadedFiles.length;
 if (filesCount == 0) return;
 
 var dataToPhp = new FormData();
 for (let i = 0; i < filesCount; i++) {
  dataToPhp.append("xxx", loadedFiles[i]);
 }
 jx_ajax_upload_file(dataToPhp).done(los_helper).fail(error);

 function los_helper(data) {
  console.log(data);
 }
});
<!DOCTYPE html>
<html>
<head>
  <title>Multi File Upload</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
  <input id="los" type="file" multiple="multiple" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
  <button id="submit">Submit</button>

</body>
</html>

php.php

<?php
print_r ($_FILES);
?>

【问题讨论】:

  • 将文件添加到表单时,尝试使用"xxx" + i 添加,为每个文件指定一个唯一的名称。
  • 谢谢 Nigel Ren。问题解决了。

标签: php file


【解决方案1】:

dataToPhp.append("xxx", loadedFiles[i]);

每个文件都有相同的名称,另一种方法是将索引添加到字段名称...

dataToPhp.append("xxx" + i, loadedFiles[i]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多