我怎样才能上传jpeg文件?

jak*_*yem 1 c# asp.net upload file-upload photo

我想上传只有jpeg,jpg等的文件.但我无法在打开的窗口中过滤文件.我想在asp.net中将文本"所有文件"更改为jpeg等.(C#)

Tim*_*ter 5

您可以使用RegularExpressionValidator来验证用户是否尝试上传jpeg文件:

<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" 
 Text="Upload File" />&nbsp;<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>
Run Code Online (Sandbox Code Playgroud)

在服务器端:

    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.";
        }
    }
Run Code Online (Sandbox Code Playgroud)

您应该知道任何用户都可以将扩展名fe从.exe更改为.jpg.我知道检查真实文件类型的唯一方法是使用函数Urlmon.dll.如果你想要进一步的信息,请看看这个SO问题:使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型