2

HTML

<form enctype="multipart/form-data" id="SubmitForm" method="post" action="serv.php">
  <input type="file" name="IMG" size="chars">
  <input type="Submit" value="SAVE">
</form>

PHP

$target = 'upload/';
$target = $target . basename($_FILES['IMG']['name']);
if (move_uploaded_file($_FILES['IMG']['tmp_name'], $target)) {           //line 66
    echo 'File uploaded successfully';
} else {
    echo 'Sorry, there was a problem uploading file'
}

問題

警告: move_uploaded_file(upload / image.jpg)[function.move-uploaded-file]:ストリームを開くことができませんでした:C:\ xampp \ htdocs \ test \ include \ pages \ editor\ged.phpにそのようなファイルまたはディレクトリはありません66行目

警告: move_uploaded_file()[function.move-uploaded-file]:「C:\ xampp \ tmp \php5E.tmp」をC:\ xampp \ htdocs \ test \include\の「upload/image.jpg」に移動できません66行目のpages\editor \ ged.php

申し訳ありませんが、ファイルのアップロードに問題がありました

ファイルの存在チェックを追加しましたが、ファイルが存在することを証明して合格しました。問題は、ここで指定したPHPコード内のどこかにあると思います。

また、以前のスクリプトで同様のコードを使用しましたが、機能しました。私はこれも同じだと思っていました。問題は一時ファイルの処理方法に関連していると思い始めていますか?わからないので、ここにいます。

このスレッドがクローンであるが、同様の名前を持つ以前のスレッドのすべてまたはいずれかが、私にとって有用であることが証明されなかった解決策を提供した場合は、お詫びします(私のシナリオでは)。

どんな助けやアドバイスも大歓迎です。どこが間違っているのですか?そして、これをどのように修正できますか?

4

3 に答える 3

2

どうやら、2つのPHPファイルが関係しているようです。serv.phpそしてged.php、それらは異なるディレクトリにあるようです。このようなレイアウトで相対パスを使用する場合、パスはデフォルトでメインスクリプトの場所を基準として解釈されますserv.php。だからあなたはこれが欲しい:

C:\xampp\htdocs\test\include\pages\editor\upload

...しかし、PHPがこれを探している可能性があります:

C:\xampp\htdocs\test\upload

最も簡単な修正は、絶対パスを使用することです。

于 2012-06-15T07:36:46.693 に答える
1

$targetアップロードはを参照しますC:\xampp\htdocs\test\include\pages\editor\upload\。このフォルダが存在しないか、書き込み権限がないようです。

于 2012-06-15T07:31:13.217 に答える
1

私の英語で申し訳ありません;o)インクルードファイルのエラー。ただし、ディレクトリ「upload」は、serv.phpにged.phpを含める場合、ファイルserv.phpと同じディレクトリにある必要があります。

htdocs/.../ -
   upload - dir
   serv.php - file
   ... other files and directories
于 2012-06-15T07:42:13.163 に答える