2015-01-29 5 views
1

Я использую jQuery и PHP для загрузки изображений на сервер и возврата JSON обрезанного изображения.
Мой код JavaScript является:Загрузка больших изображений с использованием jQuery и PHP

$('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

У вас также есть тайм-аут для PHP, чтобы выполнить скрипт. Значение по умолчанию - 30 секунд. Увеличьте его в своем 'php.ini' – Mysteryos

+0

ok позвольте мне попробовать это – Cody

+0

@Mysteryos я попытался установить max_execution время в течение 5 минут, но он по-прежнему возвращает parseerror через 1,2 минуты? – Cody

ответ

0

Увеличение объема памяти, выделенной для PHP, решит проблему.

вы можете сделать это:

1- редактировать php.ini

memory_limit = 128M; Или поместить ниже код в .htaccess

php_value memory_limit 128M 

2-Если вы oftenly этой ошибки и решение выше не работает, обратитесь к хосту. В большинстве разделяемых хостингов максимальный объем памяти_limit. Вы не можете установить лимит памяти на 64 Мб, если вы получите максимум 32 Мб.