3

Html5 ファイルのアップロードから using にファイルを渡したいASMX webserviceですjquery $.ajax。Web サービスでアップロードされたファイルを逆シリアル化するために使用するデータ型を知りたいです。

これは HTML コードです:

<input type="file" name="fileToUpload"  id="fileToUpload" />
      <input type="button" onclick="uploadFile()" />

Javascript コード:

function uploadFile() {
    var ob=new Object();
    ob.name =document.getElementById('fileToUpload').files[0];
    var Result= JSON.stringify(ob);
    $.ajax(
    { url: "UploadWS.asmx/UploadedFile",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        type: "POST",
        data: "{'x':"+Result+"}",
        success: function() { },
        error: function() { alert('error'); }
    });
} 

Web サービス コード:

public class ExtraInfo
    {
       //What data type write here?
    } 
[WebMethod]
    public void UploadedFile(object x) {
        JavaScriptSerializer Ser = new JavaScriptSerializer();
        ExtraInfo Ext = new ExtraInfo();
        Ext = Ser.Deserialize<ExtraInfo>(x.ToString());
    }
4

1 に答える 1

6
function uploadFile() {
    var data = new FormData(),
        file = $("#fileToUpload")[0].files[0];

    data.append( "name", file.name );
    data.append( "size", file.size );
    data.append( "type", file.type );
    data.append( "file", file );

    $.ajax(
    { url: "UploadWS.asmx/UploadedFile",
        dataType: "json",
        type: "POST",
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        success: function() { },
        error: function() { alert('error'); }
    });
} 

これは、サーバーに通常のアップロード POST リクエストとして表示されます。ここ"file"で、 はアップロードされたファイルのフォーム フィールド名です。ただし、ASP.NETでそれを行う方法がわかりません。

于 2012-05-29T20:02:07.013 に答える