在asmx Web服务上上传文件

时间:2013-03-18 09:49:12

标签: c# javascript iframe upload asmx

通过asmx webservice上传文件时遇到问题。

这是我的HTML代码:

<form method="post" action="/_wscommunity_/PublicCommunity.asmx/UploadTempPicture"      encoding="multipart/form-data" enctype="multipart/form-data" id="form_upload" target="upload_target">
<input type="file" name="file[]" id="file_upload">
<input type="submit" name="action" value="Upload">
<iframe name="upload_target" id="upload_target">&nbsp;</iframe>
</form>

在我的OnChange事件的Javascript文件中:

$("form_upload").target = 'upload_target'; 
$("form_upload").submit();

当我提交表单时,我会在POST中收到:

零件multipart / form-data

  

file [] GIF89a   ÷3fÌÿ++ 3 + F ++ I +ÿUU3UfUUÌ Uÿ3fÌÿªª3ªfªªÌªÿÕÕ3ÕfÕÕÌÕÿÿÿ3ÿfÿÿÌ ÿÿ3333f33Ì3ÿ3+ 3 + 33 + F3 + 3 + I3 +ÿ3U3U33Uf3U3UÌ3Uÿ3333f33Ì3ÿ3ª3ª33ªf3ª3ªÌ3ªÿ3Õ3Õ33Õf3Õ3ÕÌ3Õÿ3ÿ3ÿ33ÿf3ÿ3ÿÌ3ÿÿff3ffffÌfÿf+ F + 3F + FF + F + IF +ÿfUfU3fUffUfUÌfUÿff3ffffÌfÿfªfª3fªffªfªÌfªÿfÕfÕ3fÕffÕfÕÌfÕÿfÿfÿ3fÿffÿfÿÌfÿÿ3fÌÿ++ 3 + F ++ I +ÿUU3UfUUÌUÿ3fÌÿªª3ªfªªÌªÿÕ Õ3ÕfÕÕÌÕÿÿÿ3ÿfÿÿÌÿÿÌÌ3ÌfÌÌÌÌÿÌ+ I + 3I +网络+ I + II +ÿÌUÌU3ÌUfÌUÌUÌÌUÿÌÌ3ÌfÌÌÌÌÿ̪̪3̪f̪̪Ì̪ÿÌÕÌÕ3ÌÕfÌÕÌÕÌÌÕÿÌÿÌÿ3ÌÿfÌÿÌÿÌÌÿÿÿÿ3ÿfÿÿÌÿ YY + Y + 3 +fÿ+ÿ+ÿÿ+ÿÿU ÿU3ÿUfÿUÿUÌÿUÿÿ ÿ3ÿfÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ , ÷H°A * \È0 ;

来源 ----------------------------- 292403007321689

Content-Disposition: form-data; name="file[]"; filename="Untitled.gif"
Content-Type: image/gif
  

的GIF89a   ÷3fÌÿ++ 3 + F ++ I +ÿUU3UfUUÌ Uÿ3fÌÿªª3ªfªªÌªÿÕÕ3ÕfÕÕÌÕÿÿÿ3ÿfÿÿÌ ÿÿ3333f33Ì3ÿ3+ 3 + 33 + F3 + 3 + I3 +ÿ3U3U33Uf3U3UÌ3Uÿ3333f33Ì3ÿ3ª3ª33ªf3ª3ªÌ3ªÿ3Õ3Õ33Õf3Õ3ÕÌ3Õÿ3ÿ3ÿ33ÿf3ÿ3ÿÌ3ÿÿff3ffffÌfÿf+ F + 3F + FF + F + IF +ÿfUfU3fUffUfUÌfUÿff3ffffÌfÿfªfª3fªffªfªÌfªÿfÕfÕ3fÕffÕfÕÌfÕÿfÿfÿ3fÿffÿfÿÌfÿÿ3fÌÿ++ 3 + F ++ I +ÿUU3UfUUÌUÿ3fÌÿªª3ªfªªÌªÿÕ Õ3ÕfÕÕÌÕÿÿÿ3ÿfÿÿÌÿÿÌÌ3ÌfÌÌÌÌÿÌ+ I + 3I +网络+ I + II +ÿÌUÌU3ÌUfÌUÌUÌÌUÿÌÌ3ÌfÌÌÌÌÿ̪̪3̪f̪̪Ì̪ÿÌÕÌÕ3ÌÕfÌÕÌÕÌÌÕÿÌÿÌÿ3ÌÿfÌÿÌÿÌÌÿÿÿÿ3ÿfÿÿÌÿ YY + Y + 3 +fÿ+ÿ+ÿÿ+ÿÿU ÿU3ÿUfÿUÿUÌÿUÿÿ ÿ3ÿfÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ , ÷H°A * \È0 ; ----------------------------- 292403007321689 -

最后在我的asmx webservice中:

    [WebMethod]
    public AjaxResponse UploadTempPicture()
    {
        AjaxResponse response = new AjaxResponse();
        HttpFileCollection MyFileCollection;
        HttpPostedFile MyFile;
        MyFileCollection = HttpContext.Current.Request.Files;
        MyFile = MyFileCollection[0];
        ....
     }

网络服务正在通话但我收到此错误:

  

System.Web.Services.Protocols.SoapException:System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---&GT; System.Exception:上传文件时出错:索引超出范围。必须是非负数且小于集合的大小。       参数名称:index

0 个答案:

没有答案