ASP.NET Request.Files пуст при обратной передаче управления флэш-памятью

Я использую новый элемент управления Flash Aurigma Image Uploader, и создание образцов страниц прекрасно работает. Однако, когда я помещаю этот элемент управления на существующую страницу моего существующего сайта, он не работает. Я могу только подозревать, что что-то на главной странице или что-то еще на странице возиться с этим.

Я разыскал проблему - 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...)

3 ответа

Сохранение загруженных файлов в ASP.NET:

Приложениям Flash не разрешается отправлять файлы, созданные ими самостоятельно, в виде стандартных полей запроса POST, доступных через коллекцию Request.Files. Image Uploader Flash обходит это ограничение для загрузки файлов. Тем не менее, это вызывает некоторые проблемы с получением этих файлов на стороне сервера. Image Uploader Flash Элемент управления ASP.NET, который поставляется с Image Uploader Flash, предоставляет несколько средств для решения этой проблемы...

Без публикации ВАШЕГО кода (и как он отличается от примеров) вам трудно с этим справиться.

Просто обобщите некоторые вещи, на которые я бы посмотрел (которые могут или не могут помочь):

  1. <aur:ImageUploaderFlash ID="Uploader1" runat="server"/> не внутри <form runat="server"></form> тег установлен в вашем коде, но элемент управления требует быть частью WebForm.
  2. WebControl требует элемента управления Script Manager на странице.
  3. У вас есть HttpModule, который как-то мешает.

Возможно, элемент управления имеет событие FileUpload или что-то подобное? То, что имеет файлы в своем аргументе. Или, возможно, свойство, содержащее файлы.

Редактировать:

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

Другие вопросы по тегам