检查正在上传的文件内容

时间:2010-09-06 03:06:48

标签: c# asp.net vb.net

  

我想让C#和VB.NET都消化。

我有一个ASP.NET FileUpload控件,它只允许图像类型。我使用了如下的RegularExpressionValidator。

            <asp:FileUpload ID="fuPhoto" runat="server" TabIndex="40" />
        &nbsp;<asp:RegularExpressionValidator ID="RegularExpressionValidator3" 
                runat="server" ControlToValidate="fuPhoto" Display="Dynamic" 
                ErrorMessage="* You can only upload .jpg, .gif or .png image types." 
                ValidationExpression="^.*\.(jpg|JPG|jpeg|JPEG|gif|GIF|png|PNG)$">* You can only upload .jpg, .gif or .png image types.</asp:RegularExpressionValidator>

此方法仅验证文件的扩展名,而不验证其实际类型。收到文件后,我想检查其内容以确定它的真实含义,在本例中仅为图像。

如何检查上传的文件内容?

1 个答案:

答案 0 :(得分:0)

我认为正则表达式是错误的,因为它阻止我上传jpg。在任何情况下,您都可以使用以下内容检查服务器上的内容类型:

    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (string filename in Request.Files)
            Response.Write("<p>" + Request.Files[filename].ContentType + "</p>");
    }

有关有效类型,请参阅http://en.wikipedia.org/wiki/Internet_media_type