PHP Upload Files

230
04 марта 2017, 05:45

Всем привет.

При попытке загрузки файлов: rar, pdf, exe - PHP возвращает ошибку 7 UPLOAD_ERR_CANT_WRITE. При этом txt, ppt, gif и другие загружает нормально.

Проблема встречается на внутреннем сервере под Ubuntu 14.04 + apache2, php 5.6

У нормального хостера :) все работает великолепно.

Очевидно есть пробел в знаниях и конфигурации apache/php, но пока я не вижу решения проблемы. Коллеги, если есть понимания в какую сторону копать - прошу направить.

Спасибо.

Для примера, скрипт вообще элементарный:

index.php

<form action="upload.php" method="post" enctype="multipart/form-data">  
    <input type="file" name="filename" class="form-control">
    <button type="submit">Отправить</button>
</form>

upload.php

print_r($_FILES);
Answer 1

Судя по ошибке проблема в сохранении файлов. Проверьте директории в которые пытаетесь сохранить файлы.

UPLOAD_ERR_CANT_WRITE
Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.

Источник: http://php.net/manual/en/features.file-upload.errors.php

UPD. Проверьте всё таки доступна ли папка для записи is_writable.

Так же возможно что вы грузите слишком большие файлы и они не помещаются во временную папку /tmp или какая у вас заданна в php.ini. Попробуйте в php.ini изменить upload_tmp_dir на путь к папке где у вас точно есть много свободного места.

Answer 2

Дебажа ini_get() и sys_get_temp_dir () обнаружил две проблемы. Во первых по какой то причине в /tmp временно не помещались некоторые типы файлов: rar, pdf, exe... Починил изменив на /var/www/tmp

Во вторых, как не правил php.ini все равно оставалось: post_max_size 8M upload_max_filesize 2M

В общем и целом, мне не понятна логика, но смог переопределить настройки только для виртуального хоста /etc/apache2/sites-available/

php_admin_value  upload_tmp_dir "/var/www/tmp"
php_admin_value upload_max_filesize 256M
php_admin_value post_max_size 256M

через php.ini, init_set(), .htaccess то же самое сделать не удалось.

READ ALSO
Как правильно настроить PHPDoc?

Как правильно настроить PHPDoc?

Имеется проект на Yii1PSR-4 не используется

317
Javascript error: TypeError: Cannot read property &#39;success&#39; of null

Javascript error: TypeError: Cannot read property 'success' of null

в data передает nullПомогите понять почему

412
Почему выдает ошибку параметра во вьюхе?

Почему выдает ошибку параметра во вьюхе?

У меня есть страница searchblade

204
Настройка postback

Настройка postback

Смешной вопрос: люди помогите разобраться с postback

342