Я держу почтовую службу на моем VPS, который имеет веб-интерфейс с помощью RoundcubePHP - Невозможно прочитать загруженный временный файл
Но недавно я обнаружил, что мой Roundcube не может загружать аватары контактов правильно (который был моей первой попыткой загрузки аватаров). Таким образом, я посмотрел код и обнаружил, что он не удался при чтении свойств загруженного временного файла изображения.
Чтобы выяснить, было ли это вызвано Roundcube или нет, я написал простой скрипт.
<html>
<body>
<form method="post" action="/upload.php" enctype="multipart/form-data">
<input type="file" name="test">
<button type="submit">Upload</button>
</form>
</body>
</html>
<?php
var_dump($_FILES);
var_dump(file_exists($_FILES['test']['tmp_name']));
// read the properties by GD, as what Roundcube does
$props = getimagesize($_FILES['test']['tmp_name']);
var_dump($props);
И выход был:
array(1) {
["test"]=> array(5) {
["name"]=> string(23) "kanakurayui_2_small.png"
["type"]=> string(9) "image/png"
["tmp_name"]=> string(14) "/tmp/php7OxqPq"
["error"]=> int(0)
["size"]=> int(49294)
}
}
bool(false)
bool(false)
Похоже, что файл был удален сразу после того, как загружен, однако я мог бы назвать move_uploaded_file()
переместить временный файл в другой каталог (поэтому вложение почты правильно функционирует).
Я запускаю Ubuntu 14.04 с Nginx 1.6.2 и PHP-FPM 5.6.7 из репозиториев LaunchPad. И скрипт работает правильно на моей локальной машине, среда которой точно такая же.
Я думаю, проблема связана с определенной конфигурацией Nginx или PHP, но после проверки файлов конфигурации я мог найти только конфигурации о размере и сроке.
Я действительно смущен сейчас. Пожалуйста, помогите, спасибо.
UPDATE
Apache 2.4 + PHP работает должным образом на одном VPS.
Можете ли вы попробовать установить apache, а затем проверить, является ли это проблемой nginx или php-fpm? – insanebits
@insanebits apache 2.4 + php работает правильно. –