2010-07-09 7 views
1

J'utilise un <input type="file" /> comme une boîte de dialogue de navigateur de fichiers dans MVC. Je ne veux pas vraiment télécharger le fichier, je l'utilise pour sélectionner un modèle sur un lecteur partagé. Je veux seulement obtenir le chemin de fichier complet dans ma méthode d'action. Le serveur traitera ensuite le fichier et forcera le téléchargement sur le client. J'ai obtenu l'objet HttpPostedFileBase, mais je ne vois pas une propriété filepath. Est-ce possible? Ou sinon, quelles autres options sont disponibles?Navigateur de fichiers ASP.NET obtenir chemin de fichier

Répondre

1

Vous ne serez jamais en mesure d'obtenir le chemin d'accès complet d'un fichier à partir d'une zone de téléchargement de fichier, car il s'agit d'un problème de sécurité. Aucun navigateur ne vous passera le chemin complet, seulement le nom de fichier.

En outre, la boîte de téléchargement de fichier téléchargera toujours le fichier. Malheureusement, tout comme avec le problème de sécurité du chemin complet, il n'y a aucun moyen d'afficher une boîte de dialogue de fichier et de demander à l'utilisateur de choisir un fichier sans lancer un téléchargement.

0

Vous pouvez essayer quelque chose comme ajouter un événement javascript onchange sur l'entrée et écrire la valeur dans un champ caché. Alors lisez simplement la valeur du champ caché. Il contiendra tout ce qui se trouve dans la zone de texte du champ de saisie.

<input type="file" name="fileUploader" id="fileUploader" onchange="filePath.value = fileUploader.value;" /> 
<input type="hidden" name="filePath" id="filePath" /> 

Je ne l'ai pas regardé avec MVC mais ASP.Net je suis capable de lire que la valeur du code derrière après avoir utilisé le champ de saisie.

Espérons que cela aide.