我有一个文件1353683037.jpg
在tmp文件夹,如下图所示:
C:\xampp\htdocs\ci_project\public\images\tmp\1353683037.jpg
我需要重新命名该文件:
C:\xampp\htdocs\ci_project\public\images\main\1353683037.jpg
要做到这一点,我也做了以下情况:
$file = '1353683037.jpg';
$dir = './public/images/';
rename($dir.'tmp\'. $file, $dir.'main\'. $file);
我有来自服务器的follwing回复:
A PHP Error was encountered
Severity: Warning
Message: rename(./public/images/tmp/1353683037.jpg,../public/images/main/1353683037.jpg) [function.rename]: The system cannot find the path specified. (code: 3)
Filename: controllers/test.php
Line Number: 1
怎么可能是什么问题? 谢谢
有两个可能的原因,你的代码将无法正常工作:
首先 -您正在使用反斜杠你的目录路径。 反斜杠转义你的一些人物,包括之后的单引号tmp
和main
。 即使您的Windows环境使用反斜线,你应使用。
第二 -您的路径可能不正确。 除了使用相对路径,尝试使用绝对路径。
常数(如index.php文件中设置) FCPATH
会给你服务器的路径,以你的基础CodeIgniter的目录。
因此,我们应该可以修改代码以如下:
$file = $file = '1353683037.jpg';
$oldDir = FCPATH . 'public/images/tmp/';
$newDir = FCPATH . 'public/images/main/';
rename($oldDir.$file, $newDir.$file);
如果此代码不能正常工作,你可能已经FCPATH错误在你笨的index.php文件设置。 如果不正确,你应该将其更改为正确的路径,即/xampp/htdocs/ci_project/
这取决于从 - 你运行这个笨从或instanse从简单的PHP脚本命令。 在第一种情况下,通常,在CI寻找文件夹是公开的 - 其网站/和路径文件是图像的/ tmp / 1353683037.jpg
在2情况下的路径将是正确的,如果例如在/ var / WWW /公共/ ...你的脚本在/ var / WWW /因为./路径意味着,在当前目录下的公共目录
采用
$this->config->item('base_url')
而不是FCPATH