1

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);

我收到来自服务器的以下回复:

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

可能是什么问题?谢谢

4

3 回答 3

4

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

首先- 您在目录路径中使用反斜杠。反斜杠正在转义一些字符,包括 and 之后的单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);

如果此代码不起作用,您可能在 CodeIgniter 的 index.php 文件中错误地设置了 FCPATH。如果不正确,则应将其更改为正确的路径,即/xampp/htdocs/ci_project/

于 2012-11-23T18:30:45.000 回答
1

it depends from - are you running this commands from codeigniter instanse or from simple php script. in 1st case, usually, folder where ci looking files is public - its site / and path to file is images/tmp/1353683037.jpg

in 2 case path will be correct if for example /var/www/public/... and you script in /var/www/ because ./ in path means that in current directory where is public dir

于 2012-11-23T16:56:21.467 回答
-1

利用

$this->config->item('base_url')

而不是 FCPATH

于 2015-12-17T11:42:36.630 回答