我在tmp文件夹中有一个文件1353683037.jpg
,如下所示:
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);
我正在接受服务器的回复:
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
可能是什么问题?感谢
答案 0 :(得分:4)
您的代码无法正常工作的原因有两个:
首先 - 您正在使用反斜杠作为目录路径。反斜杠会转义一些字符,包括tmp
和main
后的单引号。即使您的Windows环境使用反斜杠,也应该使用forward。
第二次 - 您的路径可能不正确。不要使用相对路径,而是尝试使用绝对路径。
常量(在index.php中设置)FCPATH
将为您提供基本CodeIgniter目录的服务器路径。
因此,我们应该能够将您的代码修改为以下内容:
$file = $file = '1353683037.jpg';
$oldDir = FCPATH . 'public/images/tmp/';
$newDir = FCPATH . 'public/images/main/';
rename($oldDir.$file, $newDir.$file);
如果此代码不起作用,您可能在index.gnp的index.php文件中错误地设置了FCPATH。如果不正确,您应将其更改为正确的路径,即/xampp/htdocs/ci_project/
答案 1 :(得分:1)
它取决于 - 您是从codeigniter instanse还是从简单的PHP脚本运行此命令。 在第一种情况下,通常,ci看文件是公共的文件夹 - 其网站/ 和文件的路径是images / tmp / 1353683037.jpg
如果是2例路径将是正确的 例如/ var / www / public / ...你在/ var / www /中编写脚本因为./ in path意味着在当前目录中是public dir
答案 2 :(得分:-1)
使用
$this->config->item('base_url')
而不是FCPATH