我想上传只有jpeg,jpg等的文件。但是我无法在打开的窗口中过滤文件。我想在asp.net中将文本“所有文件”更改为jpeg等。 (C#)
答案 0 :(得分:5)
您可以使用RegularExpressionValidator验证用户是否尝试上传jpeg文件:
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Upload File" /> <br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:RegularExpressionValidator
id="RegularExpressionValidator1" runat="server"
ErrorMessage="Only jpeg files are allowed!"
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))
+(.jpg|.JPG|.jpeg|.JPEG)$"
ControlToValidate="FileUpload1"></asp:RegularExpressionValidator>
<br />
<asp:RequiredFieldValidator
id="RequiredFieldValidator1" runat="server"
ErrorMessage="This is a required field!"
ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
在服务器端:
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileExt =
System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileExt == ".jpeg" || fileExt == ".jpg")
{
//do what you want with this file
}
else
{
Label1.Text = "Only .jpeg files allowed!";
}
}
else
{
Label1.Text = "You have not specified a file.";
}
}
您应该知道任何用户都可以更改扩展名f.e.从.exe到.jpg。我知道检查真实文件类型的唯一方法是使用Urlmon.dll
中的函数。如果您想了解更多信息,请查看此SO问题:Using .NET, how can you find the mime type of a file based on the file signature not the extension
答案 1 :(得分:1)
那些可能对你有帮助。
答案 2 :(得分:0)
这在当前的HTML版本中是不可能的。
您应该检查服务器端的上传文件类型。