2009-04-29 8 views
2

J'ai un contrôle web avec du javascript personnalisé. Le javascript crée de nouvelles commandes de téléchargement de fichiers sur le code client en utilisant de manière dynamique similaire à:Demande ASP.NET - Puis-je obtenir un fichier publié à partir d'un contrôle dynamique créé sur le client?

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

Cela existe sous une forme ASP.NET avec Enctype multipart/form-data. Je vais avoir 1 - n contrôles sur la page (bien, limité à un nombre raisonnable, bien sûr).

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

J'ai regardé à travers un certain nombre de domaines, notamment:

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

Mais je n'ai pas réussi à trouver le contenu. Je crois que le client soumet ces données correctement mais n'a pas pu déterminer ce que le serveur fait avec les informations brutes de demande (si cela est même exposé).

Est-ce que quelqu'un a des suggestions sur les domaines que je pourrais explorer davantage?

Merci

Répondre

2

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

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

EDIT: J'ai essayé attibutes id et le nom, le avec le 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 ["file01"]:

enctype="multipart/form-data" 
+0

Hmmm, j'ai essayé, et il n'est toujours pas dans la collection Request.Form. Y aurait-il autre chose que je devrais faire? – Chris

+0

avec l'attribut de nom devrait fonctionner –

+0

Ahhh, nom - maintenant que je n'ai pas essayé. Merci tas, je vais essayer! J'ai déjà l'encType, donc ça devrait être bon. Maintenant vous avez fait du jogging dans ma mémoire, je me souviens que la requête utilise le nom et non l'identifiant? Merci :) – Chris

Questions connexes