2

私はPHPの初心者なので、そのような初歩的な質問を許してください。

いくつかのテキスト入力があるサイトのフォームに取り組んでいますが、現在は画像アップロード機能の実装に取り​​組んでいますが、1 階から降りるのに問題があります。

私のフォームには次のものがあります。

<form id="generalform" class="container" method="POST"  action="process.php" autocomplete="on" enctype="multipart/form-data" >

<several text inputs here that work>

<input type="file" class="fileuploadinput" name="Image1">
<input type="submit" name="submit" id="submit" class="button" value="Submit"/>
</form>

しかし、私のスクリプト:

if(!empty($_POST['Image1'])) {  
                    echo 'File Selected and Data set in DB';
                    } else {
                        echo 'NO File Selcted but Data Inserted';                   

                    }

常にエコーの NO File Selected but Data Inserted とテキストデータをDBに挿入しますが、なぜ画像を取得せず、代わりに画像が選択されていないことを教えてくれますか(エラーメッセージ「'NO File Selected but Data Inserted」を介して) )??

誰かがこれで私を助けることができれば、私は最も感謝しています.

4

1 に答える 1

2

アップロードされたファイルは、$_POST スーパーグローバル経由ではアクセスできません。$_FILES スーパーグローバル経由でアクセスできます。

これはうまくいくはずです:

if(file_exists($_FILES['Image1']['tmp_name']) && is_uploaded_file($_FILES['Image1']['tmp_name'])) {
    echo 'File Selected and Data set in DB';
} 
else {
    echo 'NO File Selcted but Data Inserted';                   
}

file_exists()はファイルが存在するかどうかを確認し、is_uploaded_file()は問題のファイルが HTTP POST (この場合はフォーム) 経由でアップロードされたかどうかを確認します。

私はあなたの出力について少し混乱しています。どういう意味:

ファイルは選択されていませんが、データが挿入されています

于 2013-03-29T12:41:52.580 に答える