Intereting Posts
Как запустить PHP из командной строки Windows Перенаправление на диалог проверки подлинности – «Произошла ошибка. Пожалуйста, повторите попытку позже" Интеграция Wordign Codeigniter: как заменить site_url на CI? PHP японские строки получают? Добавление динамического видеоконтента (например, YouTube) (PHP) Невозможно назначить роли пользователям, использующим базу данных (пул ролей пуст) Как отправить данные на моем PHP-сервере с помощью URL-адреса Xcode 8.1 в Objective-C Объединение регулярного выражения для проверки номера телефона в Великобритании и США PHP date () для JavaScript new Data () – Внутренний массив PHP – переформатировать многомерный массив для вставки в MYSQL? Использование плагина проверки jQuery с опцией «remote» PHP url strings конфликтует «?» И «&» Групповой скрипт PHP – другой open_basedir для каждого виртуального хоста Проблема с получением автора из RSS-ленты wordpress с использованием SimpleXmlElement

Как загрузить большие файлы выше 500 МБ в PHP

Я сделал страницу загрузки на PHP, но я не знаю, почему страница не будет загружать документы размером более 500 МБ. Это мой первый попыток загрузить что-то большое, я изменил все конфигурации в PHP.INI (post_max_size = 700M , upload_max_filesize = 600M и max_execution_time = 300). Коды для загрузки приведены ниже.

if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){ move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName); } 

Мне нужна помощь, интересно, есть ли что-то, что я не делаю правильно.

Как вы думаете, решит ли проблема увеличение размера ограничения загрузки? что, если вы загружаете 2GB-файл, что происходит? Учитываете ли вы использование памяти такого скрипта?

Вместо этого вам нужно загрузить chunked, см. Здесь: Обработка загружаемых plupload на серверной стороне и здесь: Загрузка файлов; Как использовать «chunking»?

По конфигурации PHP позволяет загружать файлы только определенного размера. В Интернете есть много статей, в которых объясняется, как изменить этот предел. Ниже приведены некоторые из них:

  • Ограничение размера файла для загрузки PHP
  • Как увеличить пределы загрузки PHP?
  • Загрузка больших (больших) файлов в PHP с использованием .htaccess

Например, вы можете отредактировать файл php.ini и установить:

 memory_limit = 32M upload_max_filesize = 24M post_max_size = 32M 

Затем вам необходимо перезапустить apache.

Заметка:
Это говорит о том, что загрузка таких больших файлов не очень надежна. Ошибки могут возникнуть. Вы можете разделить файлы и включить некоторые дополнительные данные для исправления ошибок. Один из способов сделать это – использовать файлы восстановления . Затем вы можете проверять файлы после загрузки с помощью утилиты командной строки в unix-подобных системах.

Я предполагаю, что вы имеете в виду, что вы передаете файлы через HTTP. Хотя это не так плохо, как FTP, это не очень хорошая идея, если вы можете найти другое решение проблемы. HTTP (и, следовательно, программные компоненты) оптимизированы для переноса относительно небольших файлов по всему Интернету.

Хотя протокол поддерживает запросы сервера на клиентский диапазон, он не позволяет выполнять обратную операцию. Даже если программное обеспечение с обеих сторон не подвержено влиянию объема, тем больше данных вы нажимаете на больший интервал, в течение которого вы можете потерять соединение. Но самая большая проблема – это оговорка в последнем предложении.