Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Regex验证程序回发问题的ASP.Net文件上载控件_Asp.net_Regex_Validation_Controls - Fatal编程技术网

带有Regex验证程序回发问题的ASP.Net文件上载控件

带有Regex验证程序回发问题的ASP.Net文件上载控件,asp.net,regex,validation,controls,Asp.net,Regex,Validation,Controls,我尝试使用.Net FileUpload控件和正则表达式验证程序将文件名限制为JPG、GIF或PNG扩展名。回发后,文件名将从控件中消失(如预期),但这似乎会导致验证程序启动并显示其错误文本 有人能提出一个解决方案,或者更好的方法吗?谢谢大家! 使用自定义验证器执行此检查和调用页面。在处理上载的方法中有效,如果文件没有有效的扩展名,将停止上载处理。只需使用具有以下javascript功能的自定义验证器即可: function UploadFileCheck(source, arguments)

我尝试使用.Net FileUpload控件和正则表达式验证程序将文件名限制为JPG、GIF或PNG扩展名。回发后,文件名将从控件中消失(如预期),但这似乎会导致验证程序启动并显示其错误文本


有人能提出一个解决方案,或者更好的方法吗?谢谢大家!

使用自定义验证器执行此检查和调用页面。在处理上载的方法中有效,如果文件没有有效的扩展名,将停止上载处理。

只需使用具有以下javascript功能的自定义验证器即可:

function UploadFileCheck(source, arguments)
{
    var sFile = arguments.Value;
    arguments.IsValid = 
       ((sFile.endsWith('.jpg')) ||
        (sFile.endsWith('.jpeg')) ||
        (sFile.endsWith('.gif')) ||
        (sFile.endsWith('.png')));
}
自定义验证程序代码:

<asp:CustomValidator ID="cvalAttachment" runat="server" ControlToValidate="upAttachment" SetFocusOnError="true" Text="*" ErrorMessage="Invalid: File Type (allowed types: jpg, jpeg, gif, png)" ClientValidationFunction="UploadFileCheck"></asp:CustomValidator>

这应该是您在客户端停止它,然后再将其发回的全部需要。

JavaScript没有“endsWith”,因此请将以下代码用于自定义验证器:

函数上传文件检查(源、参数)
{
var sFile=arguments.Value;
arguments.IsValid=
((sFile.match(/\.jpe?g$/i))||
(sFile.match(/\.gif$/i))||
(sFile.match(/\.bmp$/i))||
(文件匹配(/\.tif?f$/i))||
(sFile.match(/\.png$/i));
}

使用自定义验证器太长了。相反,您只需在上载按钮的单击事件中设置RegularExpression的IsValid属性


如果使用自定义验证器,则可以改为设置RegularExpression validator的IsValid属性。看看我的答案。谢谢