AJAX 发送文件,但 PHP 不会收到它,如果文件太大(但它不是)
AJAX sends file, but PHP wont receive it, if file is too large (but it is not)
我正在使用 AJAX 上传两张图片(使用 base64 编码)。如果图像很小(例如,一张图像 500kB,另一张图像 300kB,总共 <1MB),它工作得很好。但是,如果图片较大(例如 1.5MB 和 300kB),则 PHP 不会接收到较大的图片(只能看到另一张)。这表明服务器端可能会达到限制,但是 PHP 参数 post_max_size 和 upload_max_filesize 设置为 256MB,因此应该不是问题。
有什么想法是错误的吗?
这里是 ajax:
$.ajax({
url:'upload.php',
method:'POST',
contentType:"application/x-www-form-urlencoded",
data: {orig:original,image:cropped},
success:function(data)
{
$modal.modal('hide');
}
});
这里是 PHP 代码:
echo print_r($_POST);
这是 PHP 设置:
file_uploads On
max_execution_time 120
max_file_uploads 20
post_max_size 256M
upload_max_filesize 256M
在与虚拟主机管理员讨论后,我们发现问题是由 nginx 限制 client_max_body_size
引起的,该限制设置为 1MB。
我正在使用 AJAX 上传两张图片(使用 base64 编码)。如果图像很小(例如,一张图像 500kB,另一张图像 300kB,总共 <1MB),它工作得很好。但是,如果图片较大(例如 1.5MB 和 300kB),则 PHP 不会接收到较大的图片(只能看到另一张)。这表明服务器端可能会达到限制,但是 PHP 参数 post_max_size 和 upload_max_filesize 设置为 256MB,因此应该不是问题。
有什么想法是错误的吗?
这里是 ajax:
$.ajax({
url:'upload.php',
method:'POST',
contentType:"application/x-www-form-urlencoded",
data: {orig:original,image:cropped},
success:function(data)
{
$modal.modal('hide');
}
});
这里是 PHP 代码:
echo print_r($_POST);
这是 PHP 设置:
file_uploads On
max_execution_time 120
max_file_uploads 20
post_max_size 256M
upload_max_filesize 256M
在与虚拟主机管理员讨论后,我们发现问题是由 nginx 限制 client_max_body_size
引起的,该限制设置为 1MB。