2

我正在使用新的Aurigma Image Uploader Flash控件,并且创建示例页面效果很好。但是,当我将此控件放到现有站点上的现有页面上时,它不起作用。我只能怀疑母版页中的某些内容或页面上的其他内容在弄乱它。

我已经找到了问题——请求进来时 Request.Files 是空的。但是,所有的数据都是在请求中发送的。

为什么 Request.Files 不能正常工作?

这是请求的提琴手跟踪的摘录:

POST http://localhost:15361/myaccount/placead/new.aspx?postFiles=1 HTTP/1.1
Host: localhost:15361
Connection: keep-alive
Referer: http://localhost:15361/WebResource.axd?d=lAdTukuIRYXXlkVPS6yEQZdE0ZRhHxifFcDrPbzU_MDuk0OznXELaqd3rcUkbR18raDHqf4pWx6gUcGn391SmV3WbAt2TQUplpFdDsAU-K_ZPuSQ_dytDj992Foht1WO0&t=634202353399418554
Content-Length: 891463
x-preprocess-required: true
cache-control: private
pragma: private
content-type: multipart/form-data; boundary=A2sVEJZF32a3OWPo7FdIFd7UvoVW5qc-jeV
Accept: */*
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.53 Safari/534.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: visitorId=b48169a8-778b-4da3-b12b-086f308e0a52; ASP.NET_SessionId=axobxd21maqppku1xx4cde2i; .ASPXAUTH=329A2C36F151720E0274006500730074006200720065006500640065007200000027621FE6C855CB010127960117CD55CB01370064003900630032003500390039002D0032003300340066002D0034003000370064002D0038003600350030002D0034006500610066006400350061003400380036003200330000002F00000011365FF6DADD9A79132102FAF7EEE23AEE43EBC6; .NDPROLES=AAEAAAD_____AQAAAAAAAAAMAgAAAE1TeXN0ZW0uV2ViLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAIVN5c3RlbS5XZWIuU2VjdXJpdHkuUm9sZVByaW5jaXBhbAcAAAAIX1ZlcnNpb24LX0V4cGlyZURhdGUKX0lzc3VlRGF0ZQ1fUHJvdmlkZXJOYW1lCV9Vc2VybmFtZRFfSXNSb2xlTGlzdENhY2hlZAlfQWxsUm9sZXMAAAABAQABCA0NAQIAAAABAAAAR92OOeQjzUhHqawI4CPNSAYDAAAAC1NxbFByb3ZpZGVyBgQAAAALdGVzdGJyZWVkZXIBBgUAAAApQWR2ZXJ0aXNlclVwZ3JhZGVkLEFydGljbGVzVXNlcixGb3J1bVVzZXIL0
...
...
...

--A2sVEJZF32a3OWPo7FdIFd7UvoVW5qc-jeV
Content-Disposition: form-data; name="File0Width_0"
Content-Type: text/plain; charset=UTF-8; Content-Transfer-Encoding: 8bit

1028
--A2sVEJZF32a3OWPo7FdIFd7UvoVW5qc-jeV
Content-Disposition: form-data; name="File0Height_0"
Content-Type: text/plain; charset=UTF-8; Content-Transfer-Encoding: 8bit

744
--A2sVEJZF32a3OWPo7FdIFd7UvoVW5qc-jeV
Content-Disposition: form-data; name="File0Mode_0"
Content-Type: text/plain; charset=UTF-8; Content-Transfer-Encoding: 8bit

sourceFile
--A2sVEJZF32a3OWPo7FdIFd7UvoVW5qc-jeV
Content-Disposition: form-data; name="File0Name_0"
Content-Type: text/plain; charset=UTF-8; Content-Transfer-Encoding: 8bit

image001.png_Source0.png
--A2sVEJZF32a3OWPo7FdIFd7UvoVW5qc-jeV
Content-Disposition: form-data; name="File0_0"; filenam_="image001.png_Source0.png"
Content-Type: image/png; charset=UTF-8; Content-Transfer-Encoding: binary

�PNG

��� (this goes on for a while with all the binary data...)
4

3 回答 3

1

在 ASP.NET 中保存上传的文件

不允许 Flash 应用程序将自己创建的文件作为可通过 Request.Files 集合访问的标准 POST 请求字段发送。Image Uploader Flash 绕过了这个限制来上传文件。但是,它会导致在服务器端检索这些文件时出现一些问题。Image Uploader Flash 附带的 Image Uploader Flash ASP.NET 控件提供了多种工具来解决这个问题...

于 2010-09-27T10:34:57.257 回答
0

也许控件有一个 FileUpload 事件或类似的东西?在其参数中包含文件的东西。或者可能是包含文件的属性。

编辑:

<aur:ImageUploaderFlash ID="Uploader1" runat="server"
OnFileUploaded="FileUploaded"
OnAllFilesUploaded="AllFilesUploaded">

于 2010-09-16T18:30:46.500 回答
0

如果不发布您的代码(以及它与示例的不同之处),这很难帮助您。

只是概括一些我会看的东西(可能有帮助也可能没有帮助):

  1. <aur:ImageUploaderFlash ID="Uploader1" runat="server"/>不在代码中的<form runat="server"></form>标记集内,但该控件需要是 WebForm 的一部分。
  2. WebControl 需要页面上的脚本管理器控件。
  3. 你有一个 HttpModule 以某种方式干扰。
于 2010-09-16T18:51:20.277 回答