Hejsan Ett enkelt sätt är att använda sig av en validator controll på klientsidan som validerar det du matar in i htmlinput kontrollen. <code>Kontroll av filtyp på file upload
Använder nedan kod för att ladda upp html & pdf filer.
-Kan jag kontrollera filtypen (ändelsen) så att bara önskvärda filer kan laddas upp?
-Har testat på min utvecklingsmaskin och det går bra med exekverbara filer, och det känns inte riktigt bra, hur stor är säkerhetsrisken med denna funktion?
Undrar,
/Jocke
<form id="Form1" method="post" encType="multipart/form-data" runat="server">
private void cmdUpload_Click(object sender, System.EventArgs e)
{
if (( File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
{
//determine file name
string sFileName = System.IO.Path.GetFileName(File1.PostedFile.FileName);
try
{
if (File1.PostedFile.ContentLength <= lMaxFileSize)
{
//Save File on disk
File1.PostedFile.SaveAs(sFileDir + sFileName);
lblMessage.Visible=true;
//lblMessage.Text="Fil: " + sFileDir + sFileName + " skickades till webbservern.";
lblMessage.Text="Fil: " + sFileName + " skickades till webbservern.";
}
else //reject file
{
lblMessage.Visible=true;
lblMessage.Text="Filens storlek är större än den satta gränsen: " + lMaxFileSize ;
}
}
catch(Exception)//in case of an error
{
lblMessage.Visible = true;
lblMessage.Text="2:Ett fel uppstod. Vänligen försök igen!";
DeleteFile(sFileDir + sFileName);
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text="1: Ett fel uppstod. Vänligen försök igen!";
}
Sv: Kontroll av filtyp på file upload
<code>
<asp:regularexpressionvalidator id="Regularexpressionvalidator4" runat="server" ControlToValidate="HTMLINPUTKONTROLLEN" ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.HTML|.html|.pdf|.PDF)$) ErrorMessage="Bara html och pdf filer!"></asp:regularexpressionvalidator>
</code>
//FreddeSv:Kontroll av filtyp på file upload
Dim UploadImage As HttpPostedFile = Request.Files.Get(0)
Dim contenttype As String = UploadImage.ContentType
If InStr("image/gif;image/pjpeg", contenttype, CompareMethod.Binary) > 0 Then
' ok, gif och jpg godkänner vi
Else
' inte ok
End If
</code>