我怎样才能上传jpeg文件?

时间:2011-01-15 23:35:10

标签: c# asp.net file-upload upload photo

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

3 个答案:

答案 0 :(得分: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>

在服务器端:

    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版本中是不可能的。

您应该检查服务器端的上传文件类型。