我正在使用asp.net网页,在FileUpload控件中,我使用ValidationExpression
来检测所选文件是否具有所需的图像扩展名。到目前为止它工作正常,但我很难在用户选择的文件名中检测单引号或特殊字符,并使用相同的表达式。这个想法是禁止用户使用特殊字符。
目前的代码是
<asp:RegularExpressionValidator
runat="server" ID="ImageUpload_TypeValidation"
ControlToValidate="txt_CategoryPicture" Display="Dynamic"
ErrorMessage="Only files with extension JPG/JPEG/GIF/PNG/TIF/BMP are allowed."
SetFocusOnError="true" ValidationGroup="AddNewCategory"
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.png|.PNG|.jpeg|.JPEG|.gif|.GIF|.tif|.TIF|.bmp|.BMP)$">
</asp:RegularExpressionValidator>
欣赏。
答案 0 :(得分:0)
请检查并验证此正则表达式。
^.*[\w\s].*[a-zA-Z0-9_@.-]*[\w\s].*(.jpg|.JPG|.png|.PNG|.jpeg|.JPEG|.gif|.GIF|.tif|.TIF|.bmp|.BMP)$
答案 1 :(得分:0)
我选择使用Microsoft的GUID.NewGUID()
内置函数为每个文件上传生成唯一文件名,并将图像文件转换为.png
类型。这消除了我不希望用户拥有的任何特殊字符作为文件名。另一个好处是系统将始终获得唯一的文件名。
strUploadedFileName = Guid.NewGuid().ToString() & ".png"