Requête ASP.NET - Puis-je obtenir un fichier publié à partir d'un contrôle dynamique créé sur le client?

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

Question

J'ai un contrôle Web avec du javascript personnalisé. Le javascript crée de nouveaux contrôles de téléchargement de fichiers sur le client de manière dynamique en utilisant un code similaire à:

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

Cela existe dans un formulaire ASP.NET avec encType défini sur multipart / form-data. Je vais avoir 1 - n contrôles sur la page (enfin, limité à un nombre raisonnable, bien sûr).

Je souhaite maintenant capturer les fichiers téléchargés dans mon application ASP.NET. En raison de l'approche adoptée ci-dessus, je sais que je ne peux pas les capturer comme je le ferais à partir d'un contrôle FileUpload (que je ne peux malheureusement pas utiliser). Existe-t-il un autre moyen de capturer les fichiers téléchargés?

J'ai examiné plusieurs domaines, notamment:

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

Mais je n'ai pas pu trouver le contenu. Je pense que le client soumet correctement ces données, mais il n'a pas été en mesure de déterminer ce que le serveur fait avec les informations de requête brutes (si elles sont même exposées).

Quelqu'un a-t-il des suggestions à faire sur des domaines que je pourrais explorer davantage?

Merci

Était-ce utile?

La solution

Vous devez ajouter un nom unique à votre élément de téléchargement pour l'obtenir à partir de la collection Request.Form.

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

MODIFIER: j'ai essayé les identifiants et les attribut de nom, le avec nom, vous pouvez obtenir le contenu par

Request.Form["file01"]

Aussi, si vous devez ajouter l'attribut ci-dessous à votre élément de formulaire. Cela vous permet d’obtenir le contenu du fichier par Request.Files [" fichier01 "]:

enctype="multipart/form-data"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top