Intereting Posts
Программно добавьте Bundle Products в Magento, используя SKU / ID простых элементов Joomla – Допустимый размер памяти 1073741824 байт исчерпан Каков правильный способ установки переменных ENV в Laravel 5? Запрос Curl, показывающий различный контент по сравнению с запросом браузера Отображение изображений из папки с помощью PHP Сгенерировать один и тот же тип формы на одной странице несколько раз Symfony2 Все серии на данной оси должны иметь один и тот же тип данных Использование магических констант из другой области В чем разница между добавками PHP и mysql (i) _escape_string? Цветные полоски разных цветов для некоторых конкретных значений в Gnuplot Как создать файл php для отображения изображения типа <img src = "/ img.php? ImageID = 32" />? Разница между PHP и PHP5 Экспорт данных из php в excel Как сделать отчеты с определенным диапазоном дат в mysql Контроллер Laravel 5, отправляющий целое число JSON в виде строки

Проблема с размерностью загружаемого файла в PHP и MySql

Я загружаю файлы в MySql DB через PHP. Я могу загружать файлы размером до 1 Мбайт (обнаружены пробной версией и ошибкой). Файлы размером более 1 МБ не загружаются. Ошибка MySql, напечатанная функцией mysql_error () в PHP: сервер MySQL ушел

Может ли кто-нибудь помочь мне в этом? Сервер MySql запущен и работает только для запросов> 1 МБ, он дает эту ошибку.

С уважением, Майанк.

PS: Я использую форму для загрузки файла. <FORM METHOD="post" ACTION="fileUpload.php" ENCTYPE="multipart/form-data"> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="300000000"> <INPUT TYPE="hidden" NAME="action" VALUE="upload"> Description: <TEXTAREA NAME="txtDescription" ROWS="1" COLS="80"></TEXTAREA> <INPUT TYPE="file" NAME="binFile" ID="binFile"> <INPUT TYPE="submit" NAME="Upload" VALUE="Upload"> </FORM>

Related of "Проблема с размерностью загружаемого файла в PHP и MySql"

Ваш SQL-запрос, вероятно, превышает размер max_allowed_packet, и в этом случае сервер отключится.
Вас может заинтересовать mysqli_stmt :: send_long_data, который позволяет отправлять параметры дольше, чем max_allowed_packet в кусках.

Обновление: «Как я могу его изменить? Является ли использование mysqli единственным вариантом?»
Afaik значение не может быть изменено для каждой сессии, т. Е. Если вы не можете изменить конфигурацию сервера (my.cnf или параметры запуска), значение будет доступно только для чтения. edit: Как говорится в комментарии, вы можете изменить глобальное значение сервера mysql после его запуска, если у вас есть соответствующие разрешения . PDO / PDO_MYSQL (как и phpversion 5.3.0), похоже, не поддерживает send_long_data, но я не уверен в этом. Это оставило бы mysqli единственным вариантом. Недавно я заметил, что Wez Furlong присоединился к переполнению стека. Поскольку он является одним из авторов реализации PDO, он может знать (хотя он не написал модуль pdo_ mysql ).

(Полностью непроверенный и уродливый) пример

 // $mysqli = new mysqli(.... $fp = fopen($_FILES['binFile']['tmp_name'], 'rb') or die('!fopen'); //$result = $mysqli->query('SELECT @@max_allowed_packet') or die($mysqli->error); //$chunkSize = $result->fetch_all(); //$chunkSize = $maxsize[0][0]; $chunkSize = 262144; // 256k chunks $stmt = $mysqli->prepare('INSERT INTO foo (desc, bindata) VALUES (?,?)') or die($mysqli->error); // silently truncate the description to 8k $desc = 8192 < strlen($_POST['txtDescription']) ? $_POST['txtDescription'] : substr($_POST['txtDescription'], 0, 8192); $stmt->bind_param('sb', $desc, null); while(!feof($fp)) { $chunk = fread($fp, $chunkSize); $stmt->send_long_data(1, $chunk) or die('!send_long_data.'.$stmt->error); } $result = $stmt->execute(); 

Чтобы загрузить большие файлы на ваш сервер с помощью PHP, вам нужно изменить 2 параметра в файле php.ini.

 ; Maximum allowed size for uploaded files. upload_max_filesize = 50M ; Maximum size of POST data that PHP will accept. post_max_size = 50M 

50 М = ​​50 Мб

 Try these different settings in C:\wamp\bin\apache\apache2.2.8\bin\php.ini Find: post_max_size = 8M upload_max_filesize = 2M max_execution_time = 30 max_input_time = 60 memory_limit = 8M Change to: post_max_size = 750M upload_max_filesize = 750M max_execution_time = 5000 max_input_time = 5000 memory_limit = 1000M Then restart wamp to take effect Have fun,