Некоторые наши клиенты столкнулись с тем что неработает массовая загрузка файлов на сервер, поэтому мы решили поговорить о ней отдельно. Анализ обращений показывает, что неработоспособность делится на два типа:
1. Ошибки самого пользователя: неустановлены права на запись в нужные папки скрипта, попытка загрузить файлы несоответствующего настройкам типа файлов, загрузка файлов размеры которых превышают лимиты установленные в настройках скрипта или в настройках сервера.
2. Неработоспособность связана с настройками сервера. Далеко не каждый сервер поддерживает технологию которую использует массовая загрузка файлов на сервер.
Мы опустим первый пунт, который относится к ошибкам пользователя, и попытаемся настроить сервер так чтобы он стал поддерживать массовую загрузку. Поэтому прежде чем читать далее, убедитесь что ошибка не связана с вами, а именно попробуйте загрузить тот же файл, но использованием стандартной загрузки, если при стандартной загрузке файл загружается без проблем, то читаем далее.
Прежде всего разберемся как работает массовая загрузка файлов на сервер. Это не совсем обычная загрузка в том плане, в котором мы привыкли видеть загрузку на сервер, когда браузер посылает данные на ваш сервер. Загрузку файлов осуществляет специальный флеш ролик, запущенный на вашем компьютере, с помощью которого вы выбираете файлы и потом этот ролик загружает файлы.
На некоторых хостингах установлен модуль Apache mod_security который занимается фильтрованием входящего POST траффика на сервер, который отклоняет данные поступившие не из браузера, а от Flash. При этом вы можете получать любую ошибку это и 404, и 403, и 500, и Server (IO) Error, а можете просто получать сообщение что все успешно завершено, при этом в списке не появляются загруженные файлы. Ошибка зависит напрямую от того как настроен этот модуль.
Для отключения данного модуля необходимо в файл .htaccess в самое начало добавить строки:
SecFilterEngine Off
SecFilterScanPOST Off
SecFilterScanPOST Off
После этого в 90% случев проблема с массовой загрузкой устраняется. Но не всегда и не все хостинг провайдеры позволяют отключать настройки сервера в файле .htaccess. Возможно что для отключения данного модуля на вашем хостинге необходимо использовать другие директивы, поэтому уточните у вашего хостер провайдера установлен ли данный модуль на сервере и каким образом его можно отключить. Также иногда траффик блокируют другие встроенные брандмауэры, в таком случае проблему вряд ли удасться решить и понадобится только смена хостинг провайдера.
Но перед тем как принять решение о смене провайдера обязательно сообщите нам о проблеме, чтобы мы обязательно проверили работоспособность на вашем сервере, и гарантированно сообщили вам что проблема в сервере, устранить скриптом которую невозможно.
Надеемся наш совет решит вашу проблему.
С уважением,
SoftNews Media Group
Комментарии