Не могу найти папку tmp в php.(Ubuntu 10.10, apache2) - PullRequest
1 голос
/ 05 февраля 2011

У меня есть форма, которая загружает изображение.Я пытаюсь получить его по $_FILES:

$filename = $_FILES['screenshot']['name'];
$source = $_FILES['screenshot']['tmp_name']."/".$filename;
$target = GL_UPLOADPATH.$filename;

echo "TEST0";        

if (move_uploaded_file($source, $target)) {
    //connect to DB and so on, what I need

    echo "TEST1";
}

Так что я получаю эхо TEST0, но не получаю эхо TEST1.Если я повторяю каждую переменную - это нормально.Я вижу свои $target - это что-то вроде /tmp/phpoLqYdj/test2.jpg

Итак, я думаю, что PHP не может move_uploaded_file, потому что не может найти /tmp/phpoLqYdj/test2.jpg

Но где /tmp/phpoLqYdj/?Я тестирую на локальном хосте.Мой корень документа - /var/www/.PHP имеет настройки по умолчанию в php.ini (upload_tmp_dir комментируется в php.ini).

В моей папке /tmp/ (в системе) у меня нет такой папки, как php***/var/tmp/ либо.

(Ubuntu 10.10, LAMP был установлен "tasksel")

Ответы [ 2 ]

1 голос
/ 22 июля 2011

У меня была точно такая же проблема.Чтобы исправить это, я изменил права доступа к папке, в которую вы загружаете, для чтения и записи для всех.

1 голос
/ 05 февраля 2011

Когда вы загружаете файлы через PHP, он сохраняет их как файл tmp, который не имеет имени, связанного с именем файла. Добавление $filename к $_FILES['screenshot']['tmp_name'] - неправильный способ обработки ... $_FILES['screenshot']['tmp_name'] - это файл.

Кроме того, файл tmp удаляется в конце запроса, поэтому у вас никогда не будет возможности увидеть его в файловом менеджере. Либо вы перемещаете его в том же запросе, либо он исчез. Все это делается во имя безопасности.

В любом случае, просто используйте это вместо этого, и вы будете в порядке.

$filename = $_FILES['screenshot']['name'];
$source = $_FILES['screenshot']['tmp_name'];
$target = GL_UPLOADPATH.$filename;

echo "TEST0";        

if (move_uploaded_file($source, $target)) {
    //connect to DB and so on, what I need

    echo "TEST1";
}
...