Masalah saya sangat mirip dengan Pertanyaan Serupa

Saya mencoba level terbaik saya dan akhirnya, saya memposting pertanyaan saya di sini. Berharap untuk mendapatkan solusi untuk masalah di bawah ini.

Masalah Saya mencoba mengunggah banyak file melalui php. Tetapi mendapatkan satu file dalam array $_FILES.

Data meta lainnya

  1. konfigurasi php.ini. file_uploads = Aktif
  2. konfigurasi php.ini. upload_max_filesize = 2M
  3. konfigurasi php.ini. max_file_uploads = 20
  4. PHP versi 8
  5. Tidak ada kesalahan dalam log kesalahan

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);
?>
0
Arun 12 Mei 2021, 08:23

1 menjawab

Jawaban Terbaik

Di

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

Setiap file diberi nama yang sama, salah satu alternatifnya adalah menambahkan indeks ke nama bidang ...

dataToPhp.append("xxx" + i, loadedFiles[i]);
1
Nigel Ren 12 Mei 2021, 06:01