Est-il possible d'autoriser le contrôle fileupload à afficher uniquement les images? Lorsque nous cliquons sur le bouton Parcourir, seules les images doivent être affichées.Comment limiter le type de fichier dans le contrôle FileUpload
Répondre
Non, dans le web vous ne pouvez pas du côté client, évidemment du côté serveur, vous pouvez faire des choses incroyables. Pour ce genre de chose, les programmeurs utilisent normalement Activex, Flash ou similaire.
En supposant que vous voulez seulement télécharger des images.
Vous pouvez vérifier la propriété ContentType
du fichier (image/image gif).
Jetez un coup d'oeil ici pour un exemple: http://www.15seconds.com/issue/061116.htm
ne demandant pas de validation. – anishMarokey
Avec plaine <input type="file">
, je crains que ce n'est pas possible sur le côté client. Cependant, certains fournisseurs tiers, tels que SWFUpload, offrent cette fonctionnalité.
Je n'ai trouvé aucune solution directe à ce problème.
Ceci est mon solution en utilisant la RegularExpressionValidator:
<asp:FileUpload ID="fuImportImage" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server"
ControlToValidate="fuImportImage"
ErrorMessage="Only JPEG images are allowed"
ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)">
</asp:RegularExpressionValidator>
Vous ne pouvez pas strictement limiter le type de fichier, mais si le navigateur supporte vous pouvez le faire montre d'abord juste un certain type de fichier:
<form method="post" action="blahblah.blah">
<input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>
//VALIDATE FILE EXTENTION
var _validFileFlag;
function fValidFileExt(vfilePath){
var vFileName=vfilePath.split('\\').pop();
var vFileExt=vfileName.split('.').pop();
if(vFileExt.toUpperCase()=="JPEG" || vFileExt.toUpperCase()=="JPG"){
_validFileFlag = true;
}
_validFileFlag = false;
}
<asp:FileUpload ID="FileUpload1" onchange="fValidFileExt(this.value);" runat="server" />
Check '_validFileFlag', tout en économisant les données/upload ..
En 2015, webbrowsers soutenir l'entrée acceptent attribut, vous pouvez le faire:
<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
Ceci devrait être la réponse acceptée. – mbomb007
Cela permettra toujours à un utilisateur de télécharger un fichier qui n'utilise pas l'une de ces extensions – jtate
@jtate La question est limitée aux images * show * uniquement. Vous devriez toujours valider le téléchargement (et toute entrée de l'utilisateur) du côté du serveur, pour attraper quelqu'un qui essaie de télécharger quelque chose d'indésirable. L'utilisateur peut simplement renommer l'extension d'un fichier indésirable en quelque chose dans la liste des acceptations. Donc, vous devriez aborder la liste d'acceptation dans le téléchargement de fichier comme une simple aide à l'utilisateur et au moins valider sur le back-end. –
Utilisez attribut accept pour afficher uniquement les images dans le navigateur de fichiers comme ci-dessous -
<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />
avec asp .nets RegularExpressionValidator pour valider le type de fichier sélectionné avec le message de validation.
<asp:RegularExpressionValidator ID="RegExValFileUploadFileType" runat="server"
ControlToValidate="FileUploadFileType"
ErrorMessage="Only .jpg,.png,.jpeg,.gif Files are allowed" Font-Bold="True"
Font-Size="Medium"
ValidationExpression="(.*?)\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$"></asp:RegularExpressionValidator>
Que voulez-vous dire par spectacle? voulez-vous dire télécharger? –
@Amgdy - "show" = affiche uniquement les fichiers d'un certain type dans le navigateur de dialogue de fichiers qui s'affiche lorsque vous cliquez sur le bouton "Parcourir". – Jagd