我正在使用jQuery和PHP将图像上传到服务器并返回裁剪图像的JSON 我的JavaScript代码是:
$('document').ready(function () {
$('#stat').hide();
$('#file').on('change', function () {
var fd = new FormData($('#target')[0]);
$('#display > img').remove();
$('#stat').show();
$.ajax({
url: '<?php echo base_url('crop/upload') ?>',
type: "POST",
data: fd,
timeout: 1000 * 100,
contentType: false,
processData: false,
success: function (data, textStatus, jqXHR) {
$('#stat').hide();
$('div > img').remove();
console.log(data);
console.log(data[1].thumb);
$('#display > img').remove();
var img = $('<img>');
img.attr('src', data[1].thumb);
img.appendTo('#display')
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus);
},
dataType: 'json'
})
})
})
但是只要图像大小大于 2 MB ,我就会在JS控制台中看到一个解析错误。我试图设置超时,但它没有工作。
有什么问题?浏览器是否设置超时?
如何在没有解析错误的情况下让用户上传大图片?
答案 0 :(得分:0)
增加为PHP分配的内存将解决问题。
你可以通过以下方式完成:
1-编辑php.ini
memory_limit = 128M
;
或者将下面的代码放到.htaccess
php_value memory_limit 128M
2 - 如果您经常遇到此错误并且上述解决方案无效,请与您的主机联系。在大多数共享主机中,有最大的memory_limit。如果获得最大32Mb,则无法将内存限制设置为64Mb。