Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка 413 Request Entity Too Large при ajax 
:(
    Опции темы
mstdmstd
Дата 28.3.2016, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Всем привет,
Есть необходимость загрузить картинку в строковом представлении через ajax - запрос. Делаю: 
Код

                        alert( "capture_image typeof data::"+ (typeof data) +"   data.length::"+data.length+"   data::"+data )
                        jQuery.ajax({
                            url: '<?php echo site_url( "dashboard/save_template_full_image" ) ?>',
                            type: 'POST',
                            dataType: "json",
                            data: {
                        <?php echo $this->security->get_csrf_token_name(); ?>:"<?php echo $this->security->get_csrf_hash(); ?>",
                            id:            _templateID,
                            image_capture:        data
                    },
                    success: function(result) {


алерт в самой первой строке выводит 
Код

capture_image typeof data::string   data.length::17449558   data::data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACbAAAAbUCAYAAAAkT6


И после паузы получаю ошибку 413 Request Entity Too Large...
Длина строки это ~ 16 МБ

Открываю и смотрю etc/php.ini :
Код


; Rename this file to php.ini and uncomment or add directives.
; For a complete list of valid directives, visit:
;  http://us2.php.net/manual/en/ini.php

[PHP]
; We highly recommend that you leave this options enabled
cgi.fix_pathinfo=1

apc.max_file_size = 1024M
;512M
apc.shm_size = 1024M
;512M
max_execution_time = 900
;300
memory_limit = 1024M
;512M
; post_max_size = 256M
upload_max_filesize = 1024M
;512M

; Increase maximum post size
post_max_size = 1024M
;; 512M

;error_reporting = E_ALL &amp; ~E_DEPRECATED &amp; ~E_NOTICE

; Increase execution time
;max_execution_time = 300

; pull in EGPCS [Environment, GET, POST, Cookie, Server] variables as globals
;register_globals = true

; For performance reasons, (mt) does not load all of the modules that are available
; into PHP. You may uncomment any one of the following "extension" lines to enable
; the desired module

; Salblotron XSLT
;extension=xslt.so

; save in local tmp
session.save_path=/home/181213/data/tmp

allow_url_fopen = 1

output_buffering = on
default_socket_timeout = 300



В phpinfo я вижу :

PHP Version 5.5.21
...
Код

memory_limit    1024M    1024M

post_max_size    1024M    1024M

upload_max_filesize    1024M    1024M

max_execution_time    900    900 

upload_max_filesize    1024M    1024M


Не подскажите в чем проблема и как ее побороть? Файл, который я пытаюсь записать довольно большой, но явно меньше параметров в конфе.

Или это ограничения d ajax-запросе ?
Гуглом я не нашел есть ли ограничения в размере для ajax-запроса...

PM MAIL   Вверх
ksnk
Дата 28.3.2016, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



В гугле на строку `413 Request Entity Too Large` выводит http://ruhighload.com/post/%D0%9E%D1%88%D0...ntity+Too+Large
Не оно?

Загружать файлы, вообще говоря, проще и правильнее с помощью объекта  formData


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mstdmstd
Дата 28.3.2016, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



formData это пример отсюда ?
http://stackoverflow.com/questions/6974684...uests-in-jquery

Код

ar fd = new FormData();    
fd.append( 'file', input.files[0] );

$.ajax({
  url: 'http://example.com/script.php',
  data: fd,
  processData: false,
  contentType: false,
  type: 'POST',
  success: function(data){
    alert(data);
  }
});


FormData - не нужно подключть более никаких библитотек и input.files[0]  - это текст моей картинки и  'http://example.com/script.php' - скрипт принимающий файл?
PM MAIL   Вверх
ksnk
Дата 28.3.2016, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Да, это он. 
Единственное ограничение - нужен относительно современный броузер. IE10 минимум...

Добавлено через 5 минут и 8 секунд
Возможно, вот это пригодится http://stackoverflow.com/questions/4998908...end-to-formdata


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mstdmstd
Дата 29.3.2016, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Спасибо!
Пообщался с сапортом, там ограничения на post_max_size = 24M, хотя у меня и меньшие файлы выдают ошибку,
в независимости что написано в php.ini.
И решил переделать загрузку сабмитом формы без аджакса - и вопрос, а есть ли удобные утилиты для загрузки больший файлов наподобе FormData, но при сабмите формы?
PM MAIL   Вверх
ksnk
Дата 29.3.2016, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(ksnk @  28.3.2016,  11:08 Найти цитируемый пост)
В гугле на строку `413 Request Entity Too Large` выводит http://ruhighload.com/post/%D0%9E%D1%88%D0...ntity+Too+Large
Не оно?

По ссылке удалось почитать?
413 ошибку выдает не php, а сервер. Параметры в php.ini не успевают сыграть.
Какой сервер-то? nginx - смотреть параметр 
 client_max_body_size 32m



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mstdmstd
Дата 29.3.2016, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



Да ссылку я посмотрел
Саппорт мне ответил:
Код

The max allowed on the Grid are as follows:
memory_limit = 99M
max_execution_time = 300
upload_max_filesize = 20M
post_max_size = 24M
pmGoing over these values will truncate them to the capped amount but you should still be within these with a 16MB file
Though if I recall correctly over 10MB do tend to get a little unstable and timeout or drop connections

Упоминания про параметр client_max_body_size в Grid(это такой аналог cPanel) и в phpinfo я не нашел 
Сапорту я писал про этот параметр но они ответили параметрами выше и видимо эти 24M и есть client_max_body_size?


И решил переделать загрузку сабмитом формы без аджакса - и вопрос, а есть ли удобные утилиты для загрузки больший файлов наподобе FormData, но при сабмите формы? 


Это сообщение отредактировал(а) mstdmstd - 29.3.2016, 12:46
PM MAIL   Вверх
ksnk
Дата 29.3.2016, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Саппорт ответил цитатой из php.ini.

http://seyferseed.ru/ru/php/bol-shoj-razme...rosa-v-php.html

Цитата

Если используется apache2, то в /etc/apache2/apache.conf:
LimitRequestFieldsize – размер поля
LimitRequestBody – размер всего запроса



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mstdmstd
Дата 29.3.2016, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



есть доступ только к php.ini

Доступа к apache.conf - нет

И ответьте, пожалуйста, на мой вопрос: И решил переделать загрузку сабмитом формы без аджакса - и вопрос, а есть ли удобные утилиты для загрузки больший файлов наподобе FormData, но при сабмите формы? 


PM MAIL   Вверх
ksnk
Дата 29.3.2016, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



mstdmstd, Да, `jquery file upload` в строке гугла. Например этот 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mstdmstd
Дата 29.3.2016, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 30.12.2008

Репутация: нет
Всего: нет



C Query File Upload - я работал - но не въеду как это поможет с загрузкой больших файлов ?
Разве на этот загрузчик не действуют те же ограничения в максимальном размере post-запроса?
PM MAIL   Вверх
ksnk
Дата 29.3.2016, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Если нет намерений разбираться с настройками сервера, то остается только уменьшить загружаемый образ. FormData позволит не увеличивать размер POST лишними перекодировками.
Если нет желания разбираться с FormData, то готовый плагин сделает все сам.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
whatisnot
Дата 30.3.2016, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(mstdmstd @  29.3.2016,  22:45 Найти цитируемый пост)
C Query File Upload - я работал - но не въеду как это поможет с загрузкой больших файлов ?


Для современных браузеров это можно сделать используя FileReader. FormData, это не тот объект, который поможет в данном случае. Отправлять в base64, это в три раза больший объем от исходного.
PM MAIL   Вверх
ksnk
Дата 30.3.2016, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



whatisnot, Каким образом FileReader поможет загрузить файл на сервер? 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
whatisnot
Дата 31.3.2016, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(ksnk @  30.3.2016,  17:24 Найти цитируемый пост)
Каким образом FileReader поможет загрузить файл на сервер?


Для этого достаточно прочесть о методах данного объекта. Все просто - большие файлы разбиваются на части и передаются на сервер частями.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0868 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.