web-dev-qa-db-fra.com

Filtrer l'extension de fichier avec FileUpload

J'écris une application Web asp.net qui implique l'utilisation du contrôle FileUpload.

À l'heure actuelle, ce contrôle FileUpload particulier n'attend que les types de fichiers .Zip ou .gz. Si un type de fichier incorrect est chargé, un message d'erreur s'affiche pour l'utilisateur. Cette fonctionnalité est déjà implémentée.

Ce que je veux faire, c'est filtrer les types de fichiers visibles que l'utilisateur voit lorsqu'il clique sur "parcourir".

Vous avez peut-être vu une boîte de dialogue d’ouverture de fichier ressemblant à ce qui suit.
enter image description here

J'ai entouré la zone qui représente le filtre d'extension de fichier. 

C’est une fonctionnalité tellement courante que j’espérais qu’elle soit intégrée au contrôle FileUpload actuel, mais après quelques recherches en ligne, j’ai trouvé des publications indiquant que cela ne pouvait pas être fait.

Ces postes datent de 2009, il y a plus de 2 ans.

Maintenant, ma question est la suivante: Asp.Net 4.0 actuel prend-il en charge cette fonctionnalité? Si ce n’est pas le cas, connaissez-vous une solution simple pour obtenir la fonctionnalité que je souhaite?.

Je tiens à souligner à nouveau que je suis en mesure de valider si l'utilisateur choisit ou non un type de fichier pris en charge. Tout ce que je recherche, c’est un changement esthétique, qui filtrera les types de fichiers inutiles dans la boîte de dialogue Ouvrir.

10
Sam I am

Je crois que ce n'est pas possible. Filtrer par type de fichier dans le navigateur n'est pas contrôlé par asp.net.Il s'agit d'une fonctionnalité du navigateur.

Cette question a déjà été posée dans stackoverflow.Veuillez cliquer sur filtrer le type de fichier avec le contrôle de téléchargement de fichier

5
sathishkumar

Vous pouvez essayer le code ci-dessous.

<asp:FileUpload ID="UploadFile" accept="image/*" multiple="false" runat="server" BorderStyle="None" />

Cela fonctionne avec les navigateurs modernes.

N'oubliez pas de valider les extensions à l'aide de procédures derrière code.

15
Arun Banik

Pour sélectionner des images dans le contrôle fileupload.

espérons que cela vous aidera

asp:RegularExpressionValidator ID="rexp" runat="server" ControlToValidate="fupProduct"
     ErrorMessage="Only .gif, .jpg, .png, .tiff and .jpeg"
     ValidationExpression="(.*\.([Gg][Ii][Ff])|.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])|.*\.([tT][iI][iI][fF])$)"></asp:RegularExpressionValidator
6
saau

C'est possible côté client! Mais souvenez-vous de faire la validation côté serveur.

Ces deux liens le montrent: http://aspalliance.com/1614_Adding_Filter_Action_to_FileUpload_Control_of_ASPNET_20.allhttp://www.codeshode.com/2011/07/validate-file -extension-for-aspnet.html

0
Stephan

vous pouvez créer une extension de fichier de validation à partir du contrôle ASP.NET FileUpload

Je crois que vous pourriez aller pour cette solution

Valider l'extension de fichier pour le contrôle ASP.NET FileUpload

0
Turbot