Лучшие практики загрузки больших файлов в Интернет с прогрессивным улучшением
-
05-10-2019 - |
Вопрос
Я создаю HTML-форму, с помощью которой пользователь сможет загружать большие файлы размером до ~ 100 МБ.
Мои пользователи могут быть откуда угодно, поэтому я не могу рассчитывать на широкополосное соединение, современный браузер или наличие Javascript/Flash.Для пользователей, у которых есть эти «дополнительные возможности», я хотел бы предложить лучший опыт, например, некоторую форму обратной связи о процессе и гибкую форму.
Единственное, что, по моему мнению, может пойти не так, это тайм-аут сервера.Но поскольку я никогда не создавал такую функциональность Я хотел бы знать, каковы лучшие практики других людей и наиболее серьезные проблемы в этой области..
Не совсем актуально, но серверная часть написана на PHP.
Решение
Если ваш бэкэнд — PHP, то, среди прочего, вам нужно посмотреть upload_max_filesize.Большинство проблем с конфигурацией покрыты здесь.Заставить ваше приложение проверять параметры среды выполнения и действовать в соответствии с ними также является хорошей идеей, поскольку это повышает отказоустойчивость.
Я бы не рекомендовал использовать Flash во внешнем интерфейсе, поскольку он имеет тенденцию давать сбой при работе с большими файлами.А без Javascript обратная связь процесса вообще невозможна, за исключением встроенных функций браузера.Лучшее, что вы можете обеспечить без Javascript, — это поместить форму загрузки файла в iframe, чтобы содержащая страница не исчезла во время загрузки.
Для обычных сценариев хорошим выбором будет использование комбинации APC и облегченного AJAX.На сайте IBM есть пошаговое руководство по реализации на предмет.