通过 asmx 网络服务上传文件时出现问题。
这是我的 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"> </iframe>
</form>
在 OnChange 事件的我的 Javascript 文件中:
$("form_upload").target = 'upload_target';
$("form_upload").submit();
提交表单后,我在 POST 中收到:
零件多部分/表单数据
文件[] GIF89a �÷�������3��f����Ì��ÿ�+��+3�+f�+�+Ì�+ÿ�U��U3�Uf� U�UÌ�Uÿ���3�f��Ì�ÿ�ª��ª3�ªf�ª�ªÌ�ªÿ�Õ��Õ3�Õf�Õ�ÕÌ�Õÿ�ÿ��ÿ3�ÿf� ÿ ìf.² 3fÌÿª�ª3ªfªªÌªÿÕ�Õ3ÕfÕÕÌÕÿÿ�ÿ3ÿfÿÿÌÿÿÌ��Ì�3Ì�fÌ�Ì�ÌÌ�ÿÌ+�Ì+3Ì+fÌ+Ì+ÌÌ+ÿÌU�ÌU3ÌUfÌUÌUÌÌUÿÌ�Ì3ÌfÌÌÌÌÿ̪�̪3̪f̪̪Ì̪ÿÌÕ�ÌÕ3ÌÕfÌÕÌÕÌÌÕÿÌÿ�Ìÿ3ÌÿfÌÿÌÿÌÌÿÿÿ��ÿ�3ÿ�fÿ �®设+3〜+3〜+g+gr+gr. �� ����÷ H° A�*\È0 �;
来源--------------------------292403007321689
Content-Disposition: form-data; name="file[]"; filename="Untitled.gif"
Content-Type: image/gif
GIF89a �÷�������3��f����Ì��ÿ�+��+3�+f�+�+Ì�+ÿ�U��U3�Uf�U�UÌ �Uÿ����3�f��Ì�ÿ�ª��ª3�ªf�ª�ªÌ�ªÿ�Õ��Õ3�Õf�Õ�ÕÌ�Õÿ�ÿ��ÿ3�ÿf�ÿ�ÿÌ 。 f+3f+ff+f+f+ìfu3fufu3fufuìfuγf.f3fff3fff3ffìfª3fª3fª3fª3fªfªfªfªfªfªfªfªfªfªfª �Õ3ÕfÕÕÌÕÿÿ�ÿ3ÿfÿÿÌÿÿÌ��Ì�3Ì�fÌ�Ì�ÌÌ�ÿÌ+�Ì+3Ì+fÌ+Ì+ÌÌ+ÿÌU�ÌU3ÌUfÌUÌUÌÌUÿÌ�Ì3ÌfÌÌÌÌÿ̪�̪3̪f̪̪Ì̪ÿÌÕ�ÌÕ3ÌÕfÌÕÌÕÌÌÕÿÌÿ�Ìÿ3ÌÿfÌÿÌÿÌÌÿÿÿ��ÿ�3ÿ�fÿ�ÿ� 码 ^+3〜+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];
....
}
Web 服务正在调用,但我收到此错误:
System.Web.Services.Protocols.SoapException:System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.Exception:上传文件时出现问题:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引