2013-05-03 2 views
0

мой каталог проекта/public_html/тест/загрузить файл работает, но не может переместить файл в другой каталог

собственности и разрешение, как показано ниже,

drwxrwsr-x 8 lamp apache 4096 Apr 8 10:46 public_html 
drwxrwsr-x 6 lamp apache 4096 Apr 2 14:58 test 

веб-приложение, создать каталог, загрузки некоторые файлы, перемещать файлы из одного каталога в другой каталог под каталогом/public_html/тест/файлы/

drwxrwsr-x 21 lamp apache 4096 Apr 24 13:58 files 

теперь проблема, я создал каталог под названием «мой каталог»с помощью веб-приложения, оно создано в/public_html/тест/файлы /, как показано ниже,

drwxrwsrwx 2 apache apache 4096 Apr 15 13:56 mydirectory 

я загрузил один файл сказать„myfile.jpg“, который по умолчанию получают закачанный в/public_html/испытаний/файлов/

-rwxrwxrwx 1 apache apache 595284 Apr 15 13:58 myfile.jpg 

тогда мое использование кода функции PHP "move_uploaded_file", чтобы переместить файл в/public_html/тест/файлы/в/public_html/тест/файлы/MyDirectory/ниже

move_uploaded_file('/public_html/test/files/myfile.jpg', '/public_html/test/files/mydirectory/myfile.jpg'); 

Безразлично» т работы. как это исправить?

Если я изменяю право собственности на/public_html/test/files/mydirectory/на лампу: apache вместо apache: apache, а затем снова загружать файл, файл move_uploaded_file работает нормально.

примечание: пользовательская лампа относится к группе «apache».

===================

PHP Safe_mode был включен, только что сделал это и это сработало :)

+0

хорошо попробовать chmoding файл перед его перемещением, иногда я получаю те же проблемы, как, что .. увидеть, если Somthing бывает: загрузить File-> CHMOD файл -> переместить файл – Viscocent

+0

это не помогло. также попытался, как было предложено Джавад_Шарифом и Робертом Розасом. Но это тоже не сработало. –

+0

Возможно, вы должны отредактировать для копирования(), но, кстати, подтвердили, что файл, который вы пытаетесь скопировать, существует/успешно загружен? – Viscocent

ответ

1

Эта строка:

move_uploaded_file('/public_html/test/files/myfile.jpg', '/public_html/test/files/mydirectory/myfile.jpg'); 

Должно быть так:

move_uploaded_file('/public_html/test/files/myfile.jpg', '/public_html/test/files/mydirectory'); 
1

Проблема не с разрешения. Вы ошибочно используете функцию move_uploaded_file().

Правильное использование является

move_uploaded_file (string $filename , string $destination) 

Заменить код с этим.

move_uploaded_file('/public_html/test/files/myfile.jpg', '/public_html/test/files/mydirectory'); 

Для получения более подробной информации

http://php.net/manual/en/function.move-uploaded-file.php

Смежные вопросы