1

私はstackoverflowとgoogleを検索し、この件に関する多くの資料を見つけましたが、どれも私が達成しようとしていることを理解するのに役立ちません.

同じphpスクリプトを使用して、フォームデータを非同期に送信し、単一の画像をアップロードし、サイズを変更し、名前を変更して、指定したディレクトリに保存するフォームを作成しようとしています。

従来の方法でデータを送信すると、すべてが完全に機能します。

私が動けなくなっているのは、XHR をファイル形式以外のデータを処理する既存の jQuery に統合し、そのファイルを他のすべてのものと一緒に PHP スクリプトに送信しようとするときです。

私はJSに特に精通しているわけではなく、非常に学習中です。これまでに見つけたものはすべて、アップロードの進行状況、複数のファイルのアップロード、およびドラッグ アンド ドロップ (このプロジェクトでは興味がありません) に焦点を当てた、ファイルのみのアップロードの例の形式でした。

私はコードをコピーして、自分が書いたもので動作するようにそれを台無しにしようとするのが好きではありません。むしろ、その方法を理解したいのです...

標準の ajax フォーム投稿内で ajax ファイルのアップロードを実装する方法を示し、説明する読み物/チュートリアルに出くわした人はいますか?

前もって感謝します。


私が使用しているコードの簡略化された例:

<script>

$('#editgig_form').submit(function(){

    $('#ng_loading').fadeIn(500);

    var eg_dataString = $('#editgig_form').serialize();

    $.ajax({
        type: "POST",
        url: "Resorces/Components/GigDiary/edit_gig.php",
        data: eg_dataString,
        success: function(){

        $('#giglist_canvas').load('Resorces/Components/GigDiary/refresh.php');

        $('#ng_loading').fadeOut(500);
        popupclose(edit_gig);                   
        editmenu_selected = '';
        }

    });

return false;

});

</script>   

-

<form id="editgig_form" method="post" enctype="multipart/form-data">
    <input type="text" name="date" />
    <input type="text" name="venue" />
    <input type="file" name="image" />
</form>

-

<?php

date = date("Y-m-d", strtotime($_POST['date']));
venue = $_POST['venue'];

// SCRIPT TO RESIZE IMAGE, SAVE TO DIRECTORY 

$update = "UPDATE gigdairy SET date="$date", venue="$venue", image="imgname";
mysql_query($update);

?>
4

1 に答える 1

0

console.log送信しているデータを (ブラウザまたはPHP で) 印刷しようとしましたvar_dump($_FILES)か? ファイルの名前を投稿しているだけだと思います。

この機能 (ファイルのアップロード) を実装する必要があります。または、plupload、HTML5 ファイルのアップロードなどの jquery プラグインを使用できます。

コード例はこちら http://www.html5rocks.com/en/tutorials/file/xhr2/

于 2012-09-29T06:57:40.340 に答える