【问题标题】:Examine the file content being uploaded检查正在上传的文件内容
【发布时间】:2010-09-07 10:17:39
【问题描述】:

我想同时获得 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>

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

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

【问题讨论】:

  • 您使用什么方法来证明内容是有效的图像文件?文件头很好,但隐写术依赖于呈现一个有效的文件。听起来您需要重新定义业务需求...

标签: c# asp.net vb.net


【解决方案1】:

我认为正则表达式是错误的,因为它阻止我上传 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 了解有效类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 2023-04-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多