0

ページに FileUpload があります。この FileUpload で選択したファイルを JQuery でホスト パスにポストするにはどうすればよいですか? インターネットでこのコードを見つけました:

HTML

<input id="file" type="file" name="file"/>
<div id="response"></div>

JS

jQuery('document').ready(function(){

        var input = document.getElementById("file");
        var formdata = false;
        if (window.FormData) {
            formdata = new FormData();
        }
        input.addEventListener("change", function (evt) {

            var i = 0, len = this.files.length, img, reader, file;

            for ( ; i < len; i++ ) {
                file = this.files[i];

                if (!!file.type.match(/image.*/)) {
                    if ( window.FileReader ) {
                        reader = new FileReader();
                        reader.onloadend = function (e) { 
                            //showUploadedItem(e.target.result, file.fileName);
                        };
                        reader.readAsDataURL(file);
                    }

                    if (formdata) {
                        formdata.append("image", file);
                        formdata.append("extra",'extra-data');
                    }

                    if (formdata) {
                        jQuery('div#response').html('<br /><img src="ajax-loader.gif"/>');


                        jQuery.ajax({
                            url: "upload.aspx/Upload",
                            type: "POST",
                            data: formdata,
                            processData: false,
                            contentType: false,
                            success: function (res) {
                             jQuery('div#response').html("Successfully uploaded");
                            }
                        });
                    }
                }
                else
                {
                    alert('Not a vaild image!');
                }   
            }

        }, false);

    });

筆者は「コードレベルでは通常のファイルアップロードと同じように動作する」と書いていますが、やり方がわかりませんでした。

4

1 に答える 1

0

それを WebMethod に送信するには、Base64 文字列を JSON として送信する必要があり、contentType を正しく に設定する必要がありますapplication/json。それ以外の場合、ASP.NETはupload.aspx/Uploadへのリクエストを単に無視すると思います。

または、そのファイルを独自の HttpHandler に POST する方が簡単な場合があるため、金属に近い POST データにアクセスできます。

于 2013-07-03T14:40:56.017 に答える