ASP.NET - Limite de téléchargement de fichiers types de fichiers disponibles
J'ai ajouté un fichier à télécharger pour mon asp.net site web. Cependant, je veux limiter les types de fichiers que l'utilisateur peut sélectionner. Pour exemple, j'ai seulement à l'utilisateur de sélectionner les fichiers mp3. Comment puis-je ajouter un filtre pour l'upload de fichier de sorte qu'il affiche uniquement les fichiers mp3 dans le dossier sélectionné?
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnAudUpload" Text="Upload" CssClass="btncssUpload" OnClick="btnAudUpload_Click" runat="server" />
- Vous pouvez vous référer à la poste stackoverflow.com/questions/71944/... ou stackoverflow.com/questions/4234589/... amusez-vous !!
Vous devez vous connecter pour publier un commentaire.
À l'aide de RegularExpressionValidator peut vous aider. Pas de serverside code est nécessaire pour la vérification de l'extension de fichier. Découvrez ce code
Rappelez-vous tout ce que vous avez à faire est d'ajouter un contrôle fileupload avec l'id FileUpload1. Fait. Vous pouvez appuyer sur la touche F5 et voir l'effet
Utiliser le accepter attribut directement dans la balise (ce n'est pas vraiment pris en charge par le contrôle, mais sera livré au client de toute façon)
Pendant que vous pourrait liste des extensions de fichier, e.g: ".xls,.xlsx", ce n'est PAS recommandé, et certains navigateurs se confondre par elle.
Il est préférable de utilisation des types MIME (navigateur de carte pour les extensions pour vous):
Utiliser liste séparée par des virgules si nécessaire, par ex.:
Navigateurs pris en charge et plus d'infos: http://www.w3schools.com/tags/att_input_accept.asp
Commune de types MIME ci-dessous (cliché de http://www.sitepoint.com/web-foundations/mime-types-summary-list/ )
Comme indiqué ci-dessus, il n'est pas possible de sortir de la boîte.
La solution la plus simple que j'ai trouvé: utiliser un RegularExpressionValidator pour vérifier l'extension du fichier. Pas besoin de JavaScript ou de bibliothèques externes. Bien sûr, il vérifie seulement l'extension, pas le contenu du fichier (vous devez utiliser le code côté serveur et d'inspecter les octets), et ne change rien à la liste des fichiers affichés dans le dossier du navigateur.
Il n'y a pas d'options pour l'uploader de fichier par défaut, mais vous pouvez utiliser des outils tels que Uploadify à remplir cet objectif. Cependant, il est à base de mémoire flash si c'est un problème. Vous pouvez l'essayer sur leur limitée types de fichiers de démonstration.
Si vous ne souhaitez pas utiliser le flash, il serait plus facile de faire de la validation de vous-même via javascript ou sur le côté serveur et informer l'utilisateur si le type du fichier n'est pas valide.
fichier-input-accepter-attribut-est-il utile est une autre question similaire que peuvent avoir certaines informations utiles.
Il n'est pas possible avec le contrôle FileUpload dans ASP.NET mais le lien suivant peut aider:
http://forums.asp.net/p/1136820/1817938.aspx
Il n'y a pas de problème. Ici, il est!
J'ai une application similaire qui est utilisé pour télécharger des fichiers PDF. Alors qu'il serait excellent si le Téléchargement de Contrôle avait un filtre par type de fichier de la boîte, j'ai trouvé ce ne serait pas vraiment résoudre le problème de la limitation du type de fichier à charger.
Par exemple, si un utilisateur de simplement renommer un document Word à partir d' "myfile.docx" pour "monfichier.pdf" le système suppose qu'il s'agissait d'un fichier valide, même si l'encodage de fichier n'est pas valide; ceci pourrait causer des problèmes dans d'autres parties de l'application.
Pour réellement résoudre le problème, vous pouvez prendre le tableau d'octets à partir du contrôle et de l'analyser comme une chaîne de caractères. Ensuite, appliquer un filtre. Voici le code que j'ai:
Bien sûr, vous aurez besoin de savoir quels modèles sont valides pour votre type de fichier, et souhaitez peut-être utiliser une RegEx à la place de la .Net de la chaîne de la méthode d'assistance, mais l'idée générale est de vérifier le réel contenu du fichier et ne pas compter sur l'extension de fichier pour la validation.
Ryan A.
C'est probablement un très vieux sujet, mais si quelqu'un d'autre a cette question
J'ai trouvé que cela a fonctionné pour moi
parce asp:FileUpload convertit à une balise html côté client, il a logiquement fait sence que vous pouvez ajouter des balises html aswell.
Il a travaillé pour moi, maintenant, vous ne pouvez sélectionner ces fichiers tipes et n'ont pas besoin des expressions régulières
Utiliser le code suivant code js pour seulement sélectionnez le type de fichier dont on veut sélectionner.
DANS l'exemple ci-dessous, je veux sélectionner uniquement les fichier zip, Sur parcourir il ne montre que le fichier zip d'extension de nom de fichier
HTML: