io userei un validatore personalizzato per controllare l'estensione del file, come da esempio:
codice:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Pagina senza titolo</title>
<link href="../stili/Styles.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript">
// <!CDATA[
function CheckTipoFile(sender, args)
{
var file = args.Value;
var p = file.lastIndexOf(".");
if(p != -1)
{
var estensione = file.substr(p+1);
if(estensione.toUpperCase() == "JPG")
args.IsValid = true;
else
args.IsValid = false;
}
else
args.IsValid = false;
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>Upload di file *.jpg</h3>
<asp:FileUpload ID="FileUpload1" runat="server" ControlToValidate="FileUpload1" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Specifica il file jpg da inviare" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Puoi spedire solo files jpg" ClientValidationFunction="CheckTipoFile" ControlToValidate="FileUpload1"></asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Invia" /></p>
<asp:Label ID="Label1" runat="server"></asp:Label></p>
</div>
</form>
</body>
</html>
codice
codice:
Option Strict On
Partial Class prove_a
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
'forza la validazione ti tutti i controlli
Me.Validate()
If Not Me.IsValid() Then
Dim ctrl As BaseValidator
Dim errorCount%
For Each ctrl In Me.Validators
If Not ctrl.IsValid Then errorCount += 1
Next
Me.Label1.Text = "Ci sono " & (errorCount) & " errori"
Else
Me.Label1.Text = ""
End If
End Sub
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
'Questa è la funzione lato server per validare il validatore personalizzato
Dim file As String = args.Value
Dim estensione As String = Path.GetExtension(file).ToUpper()
args.IsValid = (estensione = ".JPG")
End Sub
End Class