重命名文件codeigniter


Rename file codeigniter

我想将一个文件移动到服务器的另一个目录。所以我使用重命名,但我有一个问题:

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,带绝对路径或不带。

感谢您的宝贵时间

使用文件路径,而不是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进入服务器,右键单击远程文件并选择"文件权限"。然后可以根据需要设置正确的权限。

你应该使用引号:

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"