【问题标题】:How to pass a file content to a webservice(asmx) from HTML5 FileUpload?如何从 HTML5 FileUpload 将文件内容传递给 web 服务(asmx)?
【发布时间】:2012-05-30 11:59:28
【问题描述】:

我想使用 jquery $.ajax 将 Html5 文件上传中的文件传递到 ASMX webservice。 我想知道我应该使用什么数据类型来反序列化 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'); }
    });
} 

网络服务代码:

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());
    }

【问题讨论】:

    标签: jquery asp.net html


    【解决方案1】:
    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 来做到这一点。

    【讨论】:

    • (FileUpload)Request.Form["name"] 我相信。
    • 很好的答案,你帮了我很多。
    猜你喜欢
    • 2014-09-24
    • 1970-01-01
    • 2019-03-26
    • 2018-12-07
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多