3

これは通常の形式としてうまく機能します:

<form id="frm1" enctype="multipart/form-data" action="form_handler_post.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="300000" />     
    Send this file: <input name="userfile" type="file" />
    <input type="text" name="theRefNum" />
    <input type="submit" value="Send File" />
</form>

...しかし、同時に投稿したい他のデータがたくさんあり、それを同じフォームに含めたくないので、jQueryを使用してフォームのコンテンツ(つまり画像)を投稿したい画像のアップロード。例えば

$.post("form_handler_post.php", { name: "John", time: "2pm", otherData: "Friday", image:#######});

試してみましたがimage:userfile、役に立ちませんでした。image:'userfile'image:$('userfile').val()

画像ファイルをデータ セクションに含めるにはどうすればよいですかvalue。つまり、画像の .

4

3 に答える 3

0

通常のajaxではできません。利用可能ないくつかのプラグインを使用する必要があります。ほとんどのプラグインはバックエンドで iframe を使用します。これを参照してくださいhttp://jquerybyexample.blogspot.com/2012/08/5-best-jquery-file-upload-plugin.html

于 2013-03-15T11:46:12.023 に答える
0
$("input[name='userfile']").on("change", function(){
    readURL($(this).get(0));
})
function readURL(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();
        reader.onload = function (e) {
            $('.somepicholder img').attr('src', e.target.result);
        }
        reader.readAsDataURL(input.files[0]);
    }
}
于 2013-03-15T11:48:05.127 に答える
0

jQuery では AJAX 経由でファイルを送信できないため、ファイルを iframe に送信する必要があります。

$('#frm1 input[type="submit"]').click(function(e) {
    /* Prevent this from submitting the form */
    e.preventDefault();

    /* Create an iframe. */
    var iframeName = "iframe" + (new Date()).getTime(),
        iframe = $('<iframe id="' + iframeName  + '" name="' + iframeName  + '"></iframe>');

    /* Add the iframe to the page and hide it. */
    $(this).append(iframe);
    $(iframe).hide();

    /* Set the form's target to point to the iframe. */
    $(this).attr({
        "action": "mypage.ext",
        "method": "post",
        "enctype": "multipart/form-data",
        "encoding": "multipart/form-data",
        "target": iframeName  
    });

    /* Call the modified form's submit function. */
    $(this).submit();
})

このコードは、ページに iframe を作成し、一意の ID と名前を持つようにします。次に、非表示の iframe にフォームを送信します。

その後、iframe のonload関数を使用して、親ページにコールバックできます (同じドメインにある場合)。のようなものを使用しますwindow.parent.parentFunction("Successfully uploaded!")

于 2013-03-15T11:48:51.973 に答える