move_uploaded_file () не работает - PullRequest
       25

move_uploaded_file () не работает

0 голосов
/ 16 августа 2011

Я пишу скрипт на php для загрузки файла на сервер. И код выглядит следующим образом:

$target_path = "uploaded_images/";
$target_path = $target_path . basename( $_FILES['image']['name']); 
if(move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) {

  echo "The file ".  basename( $_FILES['image']['name']). 
        " has been uploaded";
  } else{
  echo "There was an error uploading the file, please try again!";
}

Но функция move_uploaded_file() не работает и выдает следующую ошибку:

Warning: move_uploaded_file(uploaded_images/Mordent.jpg) [function.move-uploaded-file]:  failed to open stream: Permission denied 


Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpOWVz7o' to 'uploaded_images/Mordent.jpg'

Я проверил все разрешения для папок и даже безопасный режим в php.ini выключен.

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Не используйте относительный путь (uploaded_images/Mordent.jpg) здесь.Не всегда очевидно, какой рабочий каталог PHP (который он использует для превращения относительного пути в абсолютный).

Если каталог, в который вы пытаетесь переместить изображения, находится в том же каталоге, что и вашскрипт, определите $target_path как:

$target_path = __DIR__ . '/uploaded_images/';

Часть __DIR__ дает вам абсолютный путь к каталогу, в котором находится ваш текущий скрипт, затем вы добавляете к нему "относительную" часть.

1 голос
/ 13 января 2013

Ваш код в порядке ... просто измените права доступа к каталогу, куда вы перемещаете загруженные файлы

Как 0777 для всех разрешений чтения и записи Вы можете сделать это вручную или изменить его с помощью php

...