0

サーバーに画像/ファイルを正常にアップロードできません。php は次のとおりです。

//This is the directory where images will be saved
$uploadDir = "./";
$uploadFile = $uploadDir . basename( $_FILES['photo']['name']);

//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $uploadFile)){
    echo "The file has been uploaded successfully.";
} else {
    print_r($_FILES);
}

最終的なディレクトリにアップロードする前に機能を確保するために、このスクリプトが存在するディレクトリを選択しました。写真をアップロードしたいのですが、後でファイル拡張子を確認しますが、今のところ、少なくともアップロード機能が機能する必要があります。

空の配列が返されます。

**編集**また、enctype="multipart/form-data"フォームで有効になっており、AJAX経由で送信しています。

フォームは次のとおりです。

<form id="imageUploadForm" name="imageForm" enctype="multipart/form-data">
    <label for="photo" class="blogLabel">Upload an Image</label>
    <input type="file" name="photo" id="imageUpload" onChange="uploadImage();">
</form>

「onChange」を使用してフォームを送信するべきではないことを認識しています。

フォームを送信するための AJAX は次のとおりです。

function uploadImage() {
    $.ajax({
        type:'POST', 
        url:'imageController.php', 
        data:$('#imageUploadForm').serialize(),
        success: function(responseSubmit) {
                alert(responseSubmit);
            }
     });
};
4

1 に答える 1

4

そのような ajax 経由でファイルをアップロードすることはできません。

これにより、ファイルがまったくアップロードされなくなります

やりたい方法でファイルをサーバーに送信するには、通常のフォーム送信のみを行うことができます。


コメントに示されているように、隠し iframe トリックを実行して、ajax を使用せずにファイルをサーバーに送信できます。


または 、XHR2を使用できます

于 2012-08-02T20:50:18.623 に答える