我尝试通过
多次上传 <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
)
}
它似乎按属性而不是按图像对数组进行分段。 有人看出我哪里做错了吗?
致以诚挚的问候
拉尔斯
你没有做错什么,这只是 PHP 填充 $_FILES 数组的方式。 1号答案,现在18岁,给你一个可能的解决方案
https://www.php.net/manual/en/features.file-upload.multiple.php