2010-12-13 47 views
1

Je parcourt les valeurs affichées sur un formulaire en vue de faire quelque chose avec elles (donc je n'ai pas accès aux commandes elles-mêmes). C'est le processus que je dois suivre pour ce projet, c'est pourquoi je le fais de cette façon.Récupère les données de téléchargement de données à partir des données de publication dans ASP.NET

Sur le formulaire, je vais avoir une boîte de téléchargement de fichier, mais je ne suis pas sûr de la façon dont je téléchargerais le fichier qui a été sélectionné car je ne peux pas simplement faire Control.SaveAs(). Lorsque je renvoie la valeur affichée en utilisant Request.Form.Item[i] j'obtiens le nom de fichier que j'ai choisi mais pas le chemin complet comme je m'attendais.

Quelqu'un peut-il me diriger dans la bonne direction s'il vous plaît?

Merci.

+0

S'il vous plaît voir ma réponse ici: http://stackoverflow.com/questions/1297939/get-the-absolute-path-of-a-file-to-be-uploaded/ 1297977 # 1297977 – womp

+0

@Womp - Le problème est que cette méthode semble utiliser le contrôle pour obtenir directement les données. Je parcourt les données publiées en utilisant 'Request.Form.Count' et' Request.Form.Item [i] ', donc je n'ai pas accès directement au contrôle. C'est fait de cette façon car il s'agit d'un formulaire généré par l'utilisateur et ils peuvent entrer n'importe quel contrôle de formulaire qu'ils aiment. – webnoob

+0

Oui, je comprends. Cependant, je ne connais aucun moyen d'obtenir le chemin complet du fichier. Cherchez-vous à obtenir les octets du fichier lui-même? Je peux poster comment faire cela .... – womp

Répondre

5

Si vous souhaitez manipuler les fichiers téléchargés directement, et non par un contrôle FileUploader, vous devrait utiliser la collection Request.Files et non le Request.Form

+0

Merci, juste ce que je cherchais. KInda évident maintenant vous le mentionnez bien * blush * – webnoob

0

Les contrôles de téléchargement de fichiers transmettent uniquement le nom et le contenu du fichier. Je ne suis pas sûr pourquoi vous auriez besoin d'un nom de dossier, particulièrement puisque le nom de dossier serait pour le client - je ne peux pas m'attendre que ceci aurait n'importe quelle valeur à vous puisque vous voulez enregistrer le dossier sur le serveur.

Comme je ne suis pas sûr de vos objectifs, je recommande d'utiliser Server.MapPath("~/Folder") pour trouver un dossier approprié pour enregistrer vos fichiers téléchargés sur

+0

Je n'ai pas besoin de trouver un dossier pour enregistrer le dossier, je ne sais pas quoi faire avec le nom de fichier que je récupère de la valeur affichée. Si c'était le cas en PHP, je pourrais obtenir la valeur d'image affichée et avoir un chemin client complet à partir duquel je pourrais écrire un script pour télécharger le fichier. Il me semble que j'ai seulement accès au nom de fichier de cette façon, ce qui ne m'aide pas beaucoup. – webnoob

+0

Essayez-vous de lancer votre propre contrôle de téléchargement sur un protocole non-HTTP (tel que FTP)? Vous ne pouvez pas utiliser un contrôle FileUpload pour cela, car il affiche simplement une balise html. – Keith