Est-il possible d'autoriser le contrôle fileupload à n'afficher que les images?
Lorsque nous cliquons sur le bouton Parcourir, il ne devrait afficher que des images.
Non, sur 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 2015, les navigateurs Web prennent en charge l'attribut input accept, vous pouvez donc le faire:
<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
Gardez à l'esprit que Visual Studio peut vous montrer un message à ce sujet en tant qu'attribut non valide de l'outil FileUpload ASP, cependant.
Je n'ai trouvé aucune solution directe à ce problème.
Voici ma solution de contournement en utilisant 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 restreindre le type de fichier, mais si le navigateur le prend en charge, vous pouvez le faire afficher initialement uniquement 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" />
Cochez "_validFileFlag" lors de l'enregistrement des données/téléchargement ..
En supposant que vous voulez uniquement télécharger des images.
Vous pouvez vérifier la propriété ContentType
du fichier (c'est-à-dire image/gif).
Jetez un oeil ici pour un exemple: http://www.15seconds.com/issue/061116.htm
Avec plaine <input type="file">
, Je crains que ce ne soit pas possible côté client.
Cependant, certains téléchargeurs tiers tels que SWFUpload fournissent cette fonctionnalité.
Utilisez l'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 un 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>