ASP.NET Request - Могу ли я получить опубликованный файл из динамического элемента управления, созданного на клиенте? - PullRequest
2 голосов
/ 29 апреля 2009

У меня есть веб-элемент управления с некоторыми пользовательскими JavaScript. JavaScript создает новые элементы управления загрузкой файлов на клиенте динамически, используя код, подобный следующему:

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
container.appendChild(newFileUpload); // where container is a div

Это существует в форме ASP.NET с encType, установленным в multipart / form-data. У меня будет 1 - n элементов управления на странице (ну, конечно, ограниченное количество).

Теперь я хотел бы захватить загруженные файлы в моем приложении ASP.NET. Из-за подхода, принятого выше, я знаю, что не могу захватить их, как если бы я использовал элемент управления FileUpload (который, к сожалению, я не могу использовать). Есть ли другой способ захвата загруженных файлов?

Я просмотрел несколько областей, в том числе:

  • Request.Files
  • Request.Form
  • Request.Form.Keys
  • Request.InputStream

Но я не смог найти содержание. Я полагаю, что клиент передает эти данные правильно, но не смог определить, что сервер делает с необработанной информацией о запросах (если это даже открыто).

Есть ли у кого-нибудь предложения по темам, которые я мог бы дополнительно изучить?

Спасибо

1 Ответ

2 голосов
/ 29 апреля 2009

Вы должны добавить уникальное имя к элементу загрузки, чтобы получить его из коллекции Request.Form.

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
//newFileUpload.id = 'file01';
newFileUpload.name = 'file01';
container.appendChild(newFileUpload);

РЕДАКТИРОВАТЬ: Я пробовал имя и имя attibutes, с именем, вы можете получить содержимое по

Request.Form["file01"]

Также, если вам нужно добавить атрибут ниже к вашему элементу формы. Это позволяет вам получить содержимое файла по Request.Files ["file01"]:

enctype="multipart/form-data"
...