О загрузке файлов на сервер рассказывается, наверное, в каждой книге о веб разработке. Обычно при этом приводится пример формы с тегом input type=file и объясняется, как работать с массивом $_FILES на стороне сервера. Это классический вариант. Он отлично работает, но имеет несколько ограничений. 1) Чтобы загрузить несколько файлов, нужно создать несколько тегов input. При этом пользователь должен будет выбирать каждый файл отдельно, что довольно неудобно при большом количестве файлов. 2) Невозможно показать процент загрузки файла. 3) Загрузка нескольких файлов будет выполнена в одном запросе. Тут нет ничего плохого, но может возникнуть проблема, если на сервере установлены ограничения на максимальный объем запросов и время выполнения скриптов. 4) Загрузка не будет асинхронной, т. е. произойдет перезагрузка страницы. На сегодняшний день существует два основных варианта решения этих проблем. Использование iframe или flash (по-идее, silverlight тоже можно использовать для этих целей). Кстати, о решении с помощью iframe я раньше рассказывал (Как реализовать асинхронную загрузку файлов с помощью JavaScript и PHP). Сегодня речь пойдет об использовании flash, а точнее библиотеки SWFUpload. На мой взгляд, это одно из лучших решений, т. к. несмотря на то, что отправка файлов осуществляется с помощью flash, настройка, управление и отслеживание процесса загрузки выполняется с помощью JavaScript. Пересказывать возможности SWFUpload я не буду, просто покажу небольшой пример её использования. Постановка задачи. Допустим нам необходимо позволить пользователю загружать фотографии на сервер. При этом, сразу после загрузки они должны появляться внизу страницы. Шаг 1. Создаём главную страницу (index. php).
Понравилась статья? Получай обновления и будь всегда в курсе событий!