context.Request.Files集合仅在远程服务器上为空

时间:2011-03-28 15:27:59

标签: asp.net file-upload ashx

我正在使用自定义ashx处理程序来处理文件上传。在本地运行时,文件上传很好。 当我在Web服务器上使用相同的设置时,出现"Index out of range"错误。 在firebug中,我在post数据中看到文件的二进制内容,文件名也在查询字符串中传递。 以前见过这个吗? 我确定它的东西很小,但它把我推到了墙上。

更新:取得了一些进展。我发现我有两个不同的错误。一个来自FF / Chrome,一个来自IE。我现在专注于FF,因为firebug使调试更容易。现在我收到错误“无法找到路径的一部分'C:\ inetpub \ wwwroot \'”

更新2 :在FF / Chrome中使用此功能。原来IE和FF / Chrome发布的数据不同。

更新3:以下是IE开发工具中网络探查器的输出:

Request header:
Key Value
Request POST /Secured/UploadHandler.ashx? HTTP/1.1
Accept  text/html, application/xhtml+xml, */*
Referer http://cms.webstreet.co.il/Secured/fileUpload.aspx
Accept-Language he-IL
User-Agent  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Content-Type    multipart/form-data; boundary=---------------------------7db13b13d1b12
Accept-Encoding gzip, deflate
Host    cms.webstreet.co.il
Content-Length  262854
Connection  Keep-Alive
Cache-Control   no-cache

Request body:
-----------------------------7db13b13d1b12
Content-Disposition: form-data; name="qqfile"; filename="P-Art_Page_Digital.jpg"
Content-Type: image/jpeg

<Binary File Data Not Shown>
---------------------------7db13b13d1b12--

3 个答案:

答案 0 :(得分:2)

请参阅原始问题附带的(大)评论和回复列表。不知道为什么它现在有效,但Elad似乎已经解决了他的问题。

答案 1 :(得分:2)

您必须指定名称标签。

<input id="File1" name="file1" type="file" />

答案 2 :(得分:0)

我非常确定文件上传不能通过Ajax完成;你需要使用常规表格。

还要确保在表单标记上正确设置了enctype属性。