我想将文件移动到服务器中的另一个目录。 所以我使用重命名,但我有一个问题:
Message:rename(localhost:8888/asset/upload/pdf/161115_1231_maj.pdf,localhost:8888/asset/upload/del/pdf/161115_1231_maj.pdf): No such file or directory
但是,当我在浏览器中复制粘贴链接时,链接很好,所以我不明白为什么重命名不起作用。我还尝试使用copy,move_uploaded_file,带有绝对路径。
感谢您的时间
答案 0 :(得分:2)
使用文件路径,而不是URL。换句话说,/var/www/html/asset.....
(或其中任何地方)而不是“localhost”
编辑...
根据您的评论,您说您正在使用MAMP,但您的资料位于WAMP文件夹中。 MAMP仅适用于Mac,不能在Windows上运行,WAMP仅适用于Windows,不能在Mac上运行,因此您的第一步是弄清楚您使用哪一个并将文件放在正确的目录中,因为这两个是彼此不相容..
如果您希望文件在服务器和开发机器上工作而不更改路径,则可以始终使用PHP确定绝对路径。
假设你有一个像这样的文件结构
/webroot
index.php
/uploads
myfile.pdf
/del
您可以像这样获取当前文件的完整路径
$Full_path_to_current_file = realpath(dirname(__FILE__));
如果您将其放在索引文件中,它将如下所示:/full/path/to/my/webroot
现在你可以简单地做
rename("$Full_path_to_current_file/uploads/myfile.pdf", "$Full_path_to_current_file/uploads/del/myfile.pdf");
通过这种方式,您不必拥有具有不同路径的文件的两个单独版本。
编辑2
下一个可能的原因是缺乏权限。确保PHP可以访问相关文件。在命令行中运行它,看看是否有帮助(显然使用你的真实路径)
sudo chmod -R 777 /path/to/webroot
不要在服务器上执行此操作,如果必须在服务器上执行此操作,只需更改文件本身的权限即可。更改服务器上文件权限的最简单方法是使用FileZilla。只需FTP进入服务器,右键单击远程文件并选择“文件权限”。然后,您可以根据需要设置正确的权限。
答案 1 :(得分:0)
你应该使用引号:
Message:rename("localhost:8888/asset/upload/pdf/161115_1231_maj.pdf","localhost:8888/asset/upload/del/pdf/161115_1231_maj.pdf"): "No such file or directory"