ASP.NET Solicitação - Posso obter um arquivo publicado de um controle dinâmico criado no cliente?

StackOverflow https://stackoverflow.com/questions/803255

Pergunta

Eu tenho um controle da web com algum JavaScript personalizado. O JavaScript cria novos controles de upload de arquivo no cliente dinamicamente usando código semelhante a:

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

Isso existe em um formulário ASP.NET com o ENCTYPE definido como Multipart/Form-Data. Terei controles de 1 - n na página (bem, limitado a um número razoável, é claro).

Agora, gostaria de capturar os arquivos enviados no meu aplicativo ASP.NET. Devido à abordagem adotada acima, sei que não posso capturá -los como faria com um controle do FileUpload (que infelizmente não posso usar). Existe outra maneira de capturar os arquivos enviados?

Eu olhei através de várias áreas, incluindo:

  • Request.files
  • Request.form
  • Request.form.keys
  • Request.InputStream

Mas não consegui encontrar o conteúdo. Acredito que o cliente está enviando esses dados corretamente, mas não conseguiu determinar o que o servidor faz com as informações de solicitação bruta (se isso for exposto).

Alguém tem alguma sugestão em áreas que eu possa explorar ainda mais?

Obrigado

Foi útil?

Solução

Você deve adicionar um Nome único para o seu elemento de upload para obtê -lo do request.form Collection.

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

Editar: Eu tentei id e nome attibutes, o nome, você pode obter o conteúdo por

Request.Form["file01"]

Além disso, se você adicionar o atributo abaixo ao seu elemento de formulário. Isso permite que você obtenha o conteúdo do arquivo por request.files ["file01"]:

enctype="multipart/form-data"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top