rename('/images/old_name.jpg', '/images/new_name.jpg');
此代码提供找不到文件。
调用文件的脚本放在/source/
文件夹中。
可以从http://site.com/images/old_name.jpg
如何从root获取这些文件?
答案 0 :(得分:33)
rename
是一个文件系统函数,需要文件系统路径。但似乎你正在使用URI路径。
您可以使用$_SERVER['DOCUMENT_ROOT']
添加文档根目录的路径:
rename($_SERVER['DOCUMENT_ROOT'].'/images/old_name.jpg', $_SERVER['DOCUMENT_ROOT'].'/images/new_name.jpg');
或者为了获得更大的灵活性,请在当前文件__FILE__
的路径上使用dirname
:
rename(dirname(__FILE__).'/images/old_name.jpg', dirname(__FILE__).'/images/new_name.jpg');
或使用相对路径。当您在 / script 文件夹中时,..
会走一个目录级别:
rename('../images/old_name.jpg', '../images/new_name.jpg');
答案 1 :(得分:6)
在PHP中,根(/
)是文件系统的根,而不是“webroot”。如果php文件在/source/
目录中并且图像在/source/images/
中,那么这将起作用:
rename('images/old_name.jpg', 'images/new_name.jpg');