使用jQuery和PHP上传大图像

时间:2015-01-29 03:56:55

标签: javascript php ajax image-uploading parse-error

我正在使用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控制台中看到一个解析错误。我试图设置超时,但它没有工作。

有什么问题?浏览器是否设置超时?

如何在没有解析错误的情况下让用户上传大图片?

1 个答案:

答案 0 :(得分:0)

增加为PHP分配的内存将解决问题。

你可以通过以下方式完成:

1-编辑php.ini

memory_limit = 128M; 或者将下面的代码放到.htaccess

php_value memory_limit 128M

2 - 如果您经常遇到此错误并且上述解决方案无效,请与您的主机联系。在大多数共享主机中,有最大的memory_limit。如果获得最大32Mb,则无法将内存限制设置为64Mb。