上传文件 - 以错误的方式创建数组?

问题描述 投票:0回答:1

我尝试通过

多次上传
      <input type="file" class="file-upload-field" id="file_name" name="files_names[]" multiple="multiple" />

javascript/jquery 代码如下所示:(摘自其他 SoF 文章)

$(document).on('submit', '#addform', (function() {
var files = $('#file_name')[0].files;
var formData = new FormData();

for (var i=0; i < files.length; i++)
  formData.append('file_names[]', files[i]);

  $.ajax({
    url: 'ajax_addrecord.php',
        type: "POST",
  data: formData,
  contentType: false,
  cache: false,
  processData:false,
  timeout: 2000,
    success: function(data) {
      console.log('Record added.');
    }
  });

}));

但是当我在 PHP 文件中执行此操作时(只是为了检查文件是否正常到达)

error_log($date_time." :: ".print_r($_FILES, true), 0);

结果如下:

 2024-03-03 11:14:47 :: Array
 (
     [file_names] => Array
         (
             [name] => Array
                 (
                     [0] => HeleneBarrow Profil.png
                     [1] => horn_fuuuck_lovers.JPG
                     [2] => lakn_profil_mona.JPG
                 )
             [type] => Array
                 (
                     [0] => image/png
                     [1] => image/jpeg
                     [2] => image/jpeg
                 )
             [tmp_name] => Array
                 (
                     [0] => /tmp/phpZ3FVIl
                     [1] => /tmp/phpvolre9
                     [2] => /tmp/phpp4gYJW
                 )
             [error] => Array
                 (
                     [0] => 0
                     [1] => 0
                     [2] => 0
                 )
             [size] => Array
                 (
                     [0] => 270198
                     [1] => 12359
                     [2] => 82773
                 )
         )

预期结果应如下所示:

  [file_names] => Array
    [0] => {
      (
        [name] => HeleneBarrow Profil.png
        [type] => image/png
        [tmp_name] => /tmp/phpNmM8Se
        [error] => 0
        [size] => 270198
      )
    }
    [1] => {
      (
        [name] => horn_fuuuck_lovers.JPG
        [type] => image/jpeg
        [tmp_name] => /tmp/phpvolre9
        [error] => 0
        [size] => 270198
      )
    }
    [2] => {
      (
        [name] => lakn_profil_mona.JPG
        [type] => image/jpeg
        [tmp_name] => /tmp/phpp4gYJW
        [error] => 0
        [size] => 270198
      )
  }

它似乎按属性而不是按图像对数组进行分段。 有人看出我哪里做错了吗?

致以诚挚的问候

拉尔斯

javascript php jquery ajax file
1个回答
0
投票

你没有做错什么,这只是 PHP 填充 $_FILES 数组的方式。 1号答案,现在18岁,给你一个可能的解决方案

https://www.php.net/manual/en/features.file-upload.multiple.php

© www.soinside.com 2019 - 2024. All rights reserved.