0
$path= $_SERVER['DOCUMENT_ROOT'] . "/img/".$HTTP_POST_FILES['fileupload']['name'];
if($ufile !=none)
{
   if(copy($HTTP_POST_FILES['fileupload']['tmp_name'], $path))
   {
       echo "Successful<BR/>";

       echo "File Name :".$HTTP_POST_FILES['ufile']['name']."<BR/>";
       echo "File Size :".$HTTP_POST_FILES['ufile']['size']."<BR/>";
       echo "File Type :".$HTTP_POST_FILES['ufile']['type']."<BR/>";
       echo "<img src=\"$path\" width=\"150\" height=\"150\">";
   }
   else
   {
       echo "Error";
   }
}

die();

なぜ

echo "File Name :".$HTTP_POST_FILES['ufile']['name']."<BR/>"; 

ファイル名を教えてくれませんか?他の情報もエコーされません

これがばかげた質問でしたら申し訳ありませんが、フォーム メソッドが POST であることと関係がありますか?

4

2 に答える 2

3

アップロードが成功したと仮定しただけです。$HTTP_POST_FILES(または使用$_FILESする必要がある) には、アップロードが失敗した場合でもデータを入力できます。アップロードで何かを行う前に、パラメーターを確認する必要があります['error']

if ($_FILES['ufile']['error'] !== UPLOAD_ERR_OK) {
    die("Upload failed with error code " . $_FILES['ufile']['error']);
}

エラーコードはここで定義されています: http://www.php.net/manual/en/features.file-upload.errors.php

同様に、あなたのコードは安全ではないため、悪意のあるユーザーがサーバー上の任意の場所にファイルを落書きすることができます. copy()アップロードされたファイルにも使用しないでください。move_uploaded_file()理由があって存在します。これを使って。

于 2013-03-15T21:11:43.883 に答える
0

アップロードされたファイルを移動するには、 move-uploaded-fileを使用します。

HTTP_POST_FILES は非推奨です。$_FILES を使用してください。

http://www.php.net/manual/en/features.file-upload.phpこれは役に立ちます。

于 2013-03-15T21:13:23.920 に答える