在CodeIgniter中重命名文件

时间:2012-11-23 16:17:13

标签: php codeigniter codeigniter-url

我在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

可能是什么问题?感谢

3 个答案:

答案 0 :(得分:4)

您的代码无法正常工作的原因有两个:

首先 - 您正在使用反斜杠作为目录路径。反斜杠会转义一些字符,包括tmpmain后的单引号。即使您的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