0

私は現在Joomlaに取り組んでいます!Webサイト。Jumi 拡張機能 (Joomla! 内でカスタム スクリプトを作成して実行できるようにする機能) を使用して、単純なファイル アップロード ツールを作成しています。問題は、次のエラーが発生することです。

警告: copy(C:/xampp/htdocs/images/1253889508.jpg) [function.copy]: ストリームを開けませんでした: C:\xampp\htdocs\Joomla\components\com_jumi\jumi.phpにそのようなファイルまたはディレクトリはありません(25) : 61行目の eval() されたコード

問題のあるコードは次のとおりです。

//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images folder)
$newname='C:/xampp/htdocs/images/'.$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_FILES['image']['tmp_name'], $newname);

完全なコードはこちらから入手できます。これが機能するようになったら、Web サイトのニーズに合わせて変更します。

問題が Jumi の権限の問題なのか、それとも他の問題なのかはわかりません。私が言える最善のことは、何らかの理由で一時ファイルが作成されていないということです。

あなたが持っているかもしれないヒントをありがとう!

4

3 に答える 3

6

これを試して:

if(move_uploaded_file($_FILES['image']['tmp_name'], $newname)){
    // move worked, carry on
}

また、絶対パスではなく相対パスを使用してください。

于 2009-09-25T14:47:09.250 に答える
3

あなたの C:/xampp/htdocs/images ディレクトリは実際に存在しますか?
手動または mkdir() で作成しない場合

また、スラッシュをハードコーディングする代わりに、定数 DIRECTORY_SEPARATOR を使用してみてください

また、これには copy() 関数ではなく move_uploaded_file() を使用する必要があります。

また、絶対パスをスクリプトにハードコーディングしないでください。代わりに、ルート パスを取得し、それを定数として設定することをお勧めします。これは、ほとんどの場合、エントリ ファイルの dirname() 関数で行われますが、joomla には、これに使用できる定数が既に用意されています。

于 2009-09-25T14:46:45.147 に答える
0

パスにバックスラッシュでは$namenameなくスラッシュを使用しますか?

于 2009-09-25T14:45:56.787 に答える