0

我正在尝试将文件类型检查添加到文件上传表单:

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:RegularExpressionValidator id="FileUpLoadValidator" runat="server" ErrorMessage="Upload .doc, .pdf or .xls files only." ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.xls|.XLS|.pdf|.PDF|.doc|.DOC)$" ControlToValidate="FileUpload1"> </asp:RegularExpressionValidator>

在添加之前RegularExpressionValidator可以上传任何文件类型。

添加后,仍然可以上传任何文件类型。

谁能告诉我我错过了什么?

4

2 回答 2

1

也尝试使用此逻辑

^.*\.(jpg|JPG|gif|GIF|doc|DOC|pdf|PDF)$

您正在使用dotdot is a special character。有一个工具可以检查您的Regular Expression. 您也可以添加其他文件Extension

也试试这个

^([a-zA-Z].*|[1-9].*)\.(((p|P)(d|D)(f|F))|((d|D)(o|O)(c|C)))$

代码背后

为此,您需要有一个事件ButtonOnClick您必须首先检查extension1文件,例如

if (FileUpload1.HasFile)
{
            // Get the name of the file to upload.
            string fileName = Server.HtmlEncode(FileUpload1.FileName);
            // Get the extension of the uploaded file.
            string extension = System.IO.Path.GetExtension(fileName);
            // Allow only files with .doc or .xls or .pdf extensions
            // to be uploaded.
            if ((extension == ".pdf") || (extension == ".xls") || (extension == ".doc"))
            {
            //upload accordingly
            }
            else 
            {
             // Show message
            }
}

希望它有效

于 2013-05-16T11:53:38.140 回答
0

尝试其中任何一个。

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                    ErrorMessage="Only JPG/jpg file allowed!" 
                    ControlToValidate="ctlFileUpload" 
                    ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w](.)*))+(\.jpg|\.JPG)$" 
                    Width="510px" CssClass="Validator"></asp:RegularExpressionValidator>

// - - -或者

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                    ErrorMessage="Only JPG/jpg file allowed!" 
                    ControlToValidate="ctlFileUpload" 
                    ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.jpg|.JPG)$" 
                    Width="510px" CssClass="Validator"></asp:RegularExpressionValidator>

// - - - -或者

<asp:RegularExpressionValidator ID="imgValidator" runat="server" ControlToValidate="imgUpload"
                ErrorMessage="*JPG/JPEG/GIF files only" ValidationExpression="^.+\.(([jJ][pP][eE]?[gG])|([gG][iI][fF]))$" />

或尝试此以允许用户上传 txt 文件

<asp:RegularExpressionValidator ID="FileUpLoadValidator" runat="server" ErrorMessage="Only text files!"
                ValidationExpression=".*(\.txt|\.TXT)$" ControlToValidate="FileUpload1" Display="None">
于 2013-05-16T11:20:12.493 回答