RegularExpressionValidator始终显示错误消息

时间:2013-04-05 10:46:05

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

以下是我的aspx代码:

<asp:FileUpload ID="ImageUpload" runat="server" Style="margin-bottom: 5px" />
<br />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
 ErrorMessage="Only jpeg, png or gif files are allowed!"
 ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))
 +(.jpeg|.JPEG|.png|.PNG|.gif|.GIF)$" 
 ControlToValidate="ImageUpload"></asp:RegularExpressionValidator>

我想仅在我的ImageUpload中过滤jpeg,png和gif文件。 但是,当我上传jpeg,png和gif文件时,RegularExpressionValidator总是显示错误信息。我想知道我的代码中有什么问题!

2 个答案:

答案 0 :(得分:1)

如果您想要的是断言扩展,那么您可以尝试这样的事情:

\.(jpeg|JPEG|png|PNG|gif|GIF)$

这将匹配以.结尾的任何内容,后跟上述任一扩展名。

修改

如果没有尝试过并且没有使用aspx的经验,我认为您应该能够使用(?i:)使其不区分大小写:

(?i:\.jpeg|png|gif)$

答案 1 :(得分:0)

你应该试试这个

protected void Button1_Click(object sender, EventArgs e)
        {
            string filename = fileUpload.PostedFile.FileName;
            string extsn = Path.GetExtension(filename);
            if (extsn.ToUpper() == ".JPEG" || extsn.ToUpper() == ".PNG" || extsn.ToUpper() == ".GIF")
            { 

            }
        }