2010-05-25 4 views
0

Je souhaite valider le contrôle FileUpload d'asp en utilisant asp.net. Cela ne devrait accepter que les fichiers .xlsx et .xls. Les validations peuvent être du côté serveur ou côté client. mais le côté client ira mieux. Comment faire?Valider le contrôle FileUpload dans ASP.Net

Répondre

0

oui .. vous pouvez valider par simple script client ..

var uploadfile = document.getElementById ("<% = FileUpload1.ClientID%>") valeur. // se substring pour trouver l'extension var ext = uploadfile.extension // se substring pour trouver l'extension
si (poste! = "Xls ") { alerte (" format non valide.") Return false ; }

+0

<% = FileUpload1.ClientID%> "est-ce la bonne syntaxe? –

+0

<% # FileUpload1.ClientID%>" thre doit être '#' plutôt que '=' je pense que c'est vrai ?. –

0

côté serveur u peut le faire comme ce

if (FileUpload1.HasFile) 
{ 
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName); 
if (fileExtension.ToLower() != ".xlsx" && fileExtension.ToLower() != ".xls") 
{ 
Labelupload.Text = "Only Files with ..xlsx and .xls extension are allowed"; 
Labelupload.ForeColor = System.Drawing.Color.Red; 

} 
0

Vérification d'un vrai type de fichier n'est pas simple. Un utilisateur peut usurper le type de fichier (par exemple, .exe renommé .pdf), et un fichier malveillant apparaîtra alors comme un fichier bénin. Et la vérification du type MIME côté serveur ne résoudra pas cela; c'est-à-dire qu'un .exe affichera un MIME de "application/pdf" s'il est renommé en .pdf. Un moyen facile de vérifier le vrai type de fichier à l'aide System.IO.BinaryReader est décrit ici en utilisant System.IO.BinaryReader:

http://forums.asp.net/post/2680667.aspx

et la version VB ici:

http://forums.asp.net/post/2681036.aspx

Notez que vous aurez besoin connaître les «codes» binaires du (des) type (s) de fichier que vous recherchez, mais vous pouvez les obtenir en implémentant cette solution et en déboguant le code.

Questions connexes