При попытке загрузить файл в приложение WebAsyst Файлы или Фото вы можете увидеть в своем аккаунте надпись вида «1 файл(ов) успешно загружено», причем файл фактически не появляется в папке. Это может быть вызвано несколькими причинами:
- Вы пытаетесь загрузить слишком большой файл. Измените настройки сервера, как описано в соответствующей статье, или используйте только файлы меньшего размера для загрузки. Например, вы можете запаковать файл большого размера в многотомный архив ZIP или RAR и загрузить все части этого архива по отдельности.
Внимание: пользователи онлайн-сервисов могут загружать только файлы не больше 200 МБ.
- Функция загрузки файлов отключена в настройках PHP на сервере. Убедитесь в том, чтобы следующие параметры имели указанные ниже значения:
file_uploads = On
upload_tmp_dir = [директория для временных файлов]
Вместо «[директория для временных файлов]» в качестве значения параметра должен быть указан путь к существующей директории. Веб-сервер должен иметь права доступа для загрузки временных файлов в эту директорию.
- На сервере установлен PHP-модуль Suhosin. В этом случае для корректной загрузки файлов с помощью Flash-загрузчика (используемого в приложениях Файлы, Фото и Shop-Script) необходимо отключить параметр suhosin.session.cryptua, как показано ниже:
suhosin.session.cryptua = Off
В зависимости от операционной системы сервера, значение этого параметра может храниться в конфигурационном файле php.ini либо suhosin.ini.
- На сервере включен PHP-модуль mod_security, в результате чего при попытке загрузки файлов сервер возвращает скрипту код ошибки 406 («Not Acceptable»). Чтобы отключить модуль mod_security, необходимо вставить следующие строки в файл .htaccess в корневой директории WebAsyst:
SecFilterEngine Off
SecFilterScanPOST Off
В случае невозможности отключить модуль таким образом необходимо обратиться к администратору сервера с соответствующей просьбой.
- Невозможность создания PHP-сессии с заданным идентификатором. Для проверки правильности создания сессий выполните следующее:
- создайте PHP-файл (например, sessiontest.php) следующего содержания:
<?php
if (isset($_GET['PHPSESSID'])) {
session_id($_GET['PHPSESSID']);
session_start();
if (isset($_SESSION['test_upload'])) {
$result = '<font color="green">Session successfully created</font>';
} else {
$result = '<font color="red">Error creating session</font>';
}
echo $result;
} else {
session_start();
$_SESSION['test_upload'] = true;
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].
"?PHPSESSID=".session_id();
echo <<<HTML
Скопируйте адрес этой ссылки и откройте его в другом браузере:
<a href="{$url}">{$url}</a>
HTML;
}
?>
- загрузите созданный файл на сервер и откройте его в браузере. В открывшемся окне должна появиться надпись следующего вида:
Скопируйте адрес этой ссылки и откройте его в другом браузере:
http://domain.ru/sessiontest.php?PHPSESSID=7aa3b0883d574a6c61126f34695a2b91
- откройте появившуюся ссылку в другом браузере (если в данный момент открыт Internet Explorer, необходимо воспользоваться другой подобной программой, например, Firefox, Chrome, Opera, или Safari). Если на открывшейся странице отобразится надпись «Ошибка создания сессии», значит создание PHP-сессий с заданным идентификатором на вашем сервере невозможно. Для устранения причины проблемы необходимо обратиться к администратору сервера.
- Отсутствует необходимое дисковое пространство на сервере. Перед загрузкой файлов убедитесь в наличии свободного места для них.