2013-05-03 54 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 

Web应用程序创建目录,上传一些文件,从一个目录移动文件到其他目录下的目录/的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 /的所有权更改为lamp:apache而不是apache:apache,然后再次上传文件,move_uploaded_file可以正常工作。

注意:用户“灯”属于“apache”组。

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

PHP safe_mode设置为ON,只是做它关闭,它的工作:)

+0

OK尝试移动之前chmoding文件,有时我得到的是同样的问题..看看财产以后发生什么:上传文件 - > CHMOD文件 - >移动文件 – Viscocent 2013-05-03 13:22:43

+0

它没有帮助。也尝试了javad_shareef和Robert Rozas的建议。但它也没有效果。 – 2013-05-03 13:54:49

+0

也许你应该反驳复制(),但顺便说一句你确认你试图复制的文件存在/成功上传? – Viscocent 2013-05-03 14:02:33

回答

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