我可以通过文件上传表单上传最多10张图片但是当我尝试上传超过10张图片时,PHP会抛出此错误:
警告:exif_imagetype():文件名不能为空
我已经编辑了我的PHP.ini文件。我在那里:
post_max_size = 40M
upload_max_filesize = 40M
max_file_uploads = 20
我已经检查了我的phpinfo页面并确认已设置这些设置。我已经多次重启Apache了。
我知道我没有超过最大文件大小限制,因为我创建了一些每个只有1kb的测试图像并且他们不会上传,但我能够上传大量MB的大图像如果我上传的文件少于10个。
我的表单如下:
<form id="photos_form" action="" enctype="multipart/form-data" method="post"><input type="hidden" name="temp_id" value="20170511-073423-2820394"><section><h1>Add Photos</h1><div id="photos_wrap"><label for="photos">Select photos of your item to upload:</label><br><button id="choose_photos_btn" type="button">Add photos</button><input id="photos" name="photos[]" type="file" multiple="multiple" ></div><button id="photos_submit">Upload selected photos</button><div id="photos_preview"></div></section></form>
通过XHR
发布 // Photos form submit
$('body').on('submit', '#photos_form', function (e) {
//disable the default form submission
e.preventDefault();
$('#photos_submit').addClass('uploading').text('Uploading...');
//grab all form data
var formData = new FormData($(this)[0]);
$.ajax({
url: 'lib/upload-photos',
dataType: 'html',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {
$('#photos').val('');
$('#photos_submit').hide();
$('#photos_wrap').removeClass('error');
$('#photos_wrap .photos_error, #photos_preview .deleted, #upload_errors').remove();
$('#photos_preview').append(data);
},
error: function () {
alert("Error uploading photos");
}
});
return false;
});
我的PHP看起来像:
if ($_SERVER ['REQUEST_METHOD'] == 'POST') {
if (isset($_FILES ['photos'])) {
$num_pics = count($_FILES ['photos'] ['name']);
echo 'num pics is ' .$num_pics;
}
}
并说 num pics是1
$ FILES的print_r给出:
Array
(
[photos] => Array
(
[name] => Array
(
[0] =>
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 4
)
[size] => Array
(
[0] => 0
)
)
)
如何上传10张以上的图片?
答案 0 :(得分:0)
我有一些Javascript覆盖了PHP.ini设置。那就是问题所在。