我的项目目录是/ public_html / test /
所有权和许可如下,
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 / test / files /
下的其他目录drwxrwsr-x 21 lamp apache 4096 Apr 24 13:58 files
现在的问题是, 我使用Web应用程序创建了名为“mydirectory”的目录,它在/ public_html / test / files /下创建,如下所示,
drwxrwsrwx 2 apache apache 4096 Apr 15 13:56 mydirectory
然后我上传了一个文件说“myfile.jpg”,默认情况下上传到/ public_html / test / files /
-rwxrwxrwx 1 apache apache 595284 Apr 15 13:58 myfile.jpg
然后我的代码使用php函数“move_uploaded_file”将文件移动到/ public_html / test / files /到/ public_html / test / files / 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工作正常。
注意:用户“lamp”属于“apache”组。
===================
PHP Safe_mode已启用,只是将其关闭并且有效:)
答案 0 :(得分: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 :(得分: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');
了解更多详情