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

コードが機能しない理由は2つ考えられます。

最初-ディレクトリパスに円記号を使用しています。tmpバックスラッシュは、との後の一重引用符を含む一部の文字をエスケープしていますmain。Windows環境で円記号を使用している場合でも、円記号を使用する必要があります。


2番目-パスが正しくない可能性があります。相対パスを使用するのではなく、絶対パスを使用してみてください。

定数(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

これは、次の条件によって異なります。このコマンドをcodeigniter instanseから実行しているのか、それとも単純なphpスクリプトから実行しているのか。最初のケースでは、通常、ci検索ファイルが公開されているフォルダー-そのサイト/およびファイルへのパスはimages / tmp/1353683037.jpgです

2つの場合、たとえば/ var / www / public /...の場合にパスが正しくなります。パスの./は、現在のディレクトリのpublic dirを意味するため、/ var /www/でスクリプトを作成します。

于 2012-11-23T16:56:21.467 に答える
-1

使用する

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

FCPATHの代わりに

于 2015-12-17T11:42:36.630 に答える