适用于IE和Chrome。在Google上找不到任何帮助。基本上,它只是检查在FileUpload控件中选择的文件的扩展名。
以下是代码:
<asp:FileUpload ID="FileUpload1" runat="server" Width="450" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Invalid file type."
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.pdf|.txt|.doc|.csv|.xls|.xlsx)$"
ControlToValidate="FileUpload1" Display="Dynamic">
</asp:RegularExpressionValidator>
答案 0 :(得分:4)
因此文件路径加载器中的文件路径中还有其他字符,请尝试使用此正则表达式
(.*\.(pdf|txt|doc|csv|xls|xlsx)$)
您的RegularExpressionValidator看起来像
<asp:RegularExpressionValidator id="revImage" runat="server"
ErrorMessage="Please Upload the Valid document File" Text="*" Display="Dynamic"
ValidationExpression=
"(.*\.(pdf|txt|doc|csv|xls|xlsx)$)"
ControlToValidate="fileUploaderId"> </asp:RegularExpressionValidator>
答案 1 :(得分:1)
正则表达式限制性太强。我不确定为什么它在IE&amp; Chrome但不适用于Firefox。也许Firefox正在剥离文件名的路径?
你的注册表试图匹配一个完整的Windows文件路径,所以如果名称看起来不像那样会失败,比如你使用的是Mac,Linux机器或浏览器预先剥离了名称的路径
如果您将其更改为:
`。(pdf | txt | doc | csv | xls | xlsx)$'它只能确保名称以批准的扩展名结尾(这只是对@waqas发布的内容略有改进)
西蒙