0

私はこのようなマークアップを持っています。今はフォームを使用していません。ajax を使用して画像をアップロードしたいです。

$('#file').on('change', function(e) {
    $.ajax({
        url: "upload.php",
        type: "POST",
        data: ?,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
})

データで何を送信する必要がありますか?この ajax はスタック オーバーフローのみで発生しましたが、理解できません。もう1つ、PHPファイルのデータを受け取るにはどうすればよいですか

ありがとうございました?

4

3 に答える 3

1

ajax経由で画像をアップロードすることはできません。できることは、非表示のiframeを作成し、それを使用してファイルをアップロードすることです。

于 2013-03-12T17:44:32.923 に答える
0

通常、AJAXを介してファイルをアップロードするのは面倒であることに注意してください。関連する質問は、JQuery内のAJAXを介したファイルのアップロードで確認できます。

個人的には、送信時にフォームのクローンを使用して、送信時に非表示のiframeを生成することにしました。完了すると、iframeのコンテンツがjQueryに戻されます。古いIEバージョンで機能する別の方法を見つけることができませんでした。

于 2013-03-12T17:44:42.293 に答える
0

あなたがやろうとしていることは、FormData関数をサポートするブラウザーで達成できます。

$('#file').on('change', function(e) {
    var data = new FormData();
    data.append('file',this.files[0]);
    $.ajax({
        url: "upload.php",
        type: "POST",
        data: data,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
})
于 2013-03-12T17:54:35.253 に答える