Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
如何限制ASP.NET AJAX控件工具包中AsyncFileUpload的文件浏览菜单中的文件类型_.net_Asp.net_Vb.net_Visual Studio_Ajaxcontroltoolkit - Fatal编程技术网

如何限制ASP.NET AJAX控件工具包中AsyncFileUpload的文件浏览菜单中的文件类型

如何限制ASP.NET AJAX控件工具包中AsyncFileUpload的文件浏览菜单中的文件类型,.net,asp.net,vb.net,visual-studio,ajaxcontroltoolkit,.net,Asp.net,Vb.net,Visual Studio,Ajaxcontroltoolkit,我想限制他们在文件上传对话框中看到的内容,该对话框默认设置为“所有文件”。我理解如何验证他们只上传了特定的文件类型,这不是这里的问题。我只想知道如何在文件选择对话框中默认文件类型 有没有办法将其更改为“仅PNG”或“*.PNG” 这是在ASP.NET AJAX控件工具箱中使用AsyncFileUpload。您可以使用控件上的OnClientUploadStart属性启动JavaScript函数进行验证,如下所示: <cc1:AsyncFileUpload ID="FileUpload" r

我想限制他们在文件上传对话框中看到的内容,该对话框默认设置为“所有文件”。我理解如何验证他们只上传了特定的文件类型,这不是这里的问题。我只想知道如何在文件选择对话框中默认文件类型

有没有办法将其更改为“仅PNG”或“*.PNG”


这是在ASP.NET AJAX控件工具箱中使用AsyncFileUpload。

您可以使用控件上的
OnClientUploadStart
属性启动JavaScript函数进行验证,如下所示:

<cc1:AsyncFileUpload ID="FileUpload" runat="server" 
  OnClientUploadStarted="checkExtension" />

在这种情况下,我们只是使用客户端API的不同部分来获取/检查扩展,返回
false
,并在错误消息无效时停止上传/设置错误消息(可选)。

当前版本的ajax控件工具包没有此选项


但好消息是,您可以获得并添加一个属性来处理此问题。

这一个对我有用(感谢DavRob的灵感)


函数AssemblyFileUpload_已启动(发送方,参数){
var filename=args.get_filename();
var ext=filename.substring(filename.lastIndexOf(“.”+1);
如果(ext!=“png”){
抛出{
名称:“无效文件类型”,
级别:“错误”,
消息:“无效的文件类型(仅.png)”,
htmlMessage:“无效的文件类型(仅.png)”
}
返回false;
}
返回true;
}

这会停止加载,但会抛出一个丑陋的“不支持”错误,因为set\u cancel不存在。这与解决方案非常接近,但需要抛出一个自定义异常,而不是调用set_***函数。它可以工作,但会在屏幕上抛出警报,除非您订阅OnClientUploadError事件,并且不对其执行任何操作。
function checkExtension(sender, args) {
  var ext = args.get_fileName().substring(filename.lastIndexOf(".") + 1);
  if (ext != 'png') {
    args.set_cancel(true);                           //cancel upload
    args.set_errorMessage("File type must be .png"); //set error message
    return false;
  }
  return true;
}
<cc1:AsyncFileUpload ID="FileUpload" runat="server" 
  OnClientUploadStarted="AssemblyFileUpload_Started" />

<script>
function AssemblyFileUpload_Started(sender, args) {
    var filename = args.get_fileName();
    var ext = filename.substring(filename.lastIndexOf(".") + 1);
    if (ext != 'png') {
        throw { 
            name:        "Invalid File Type", 
            level:       "Error", 
            message:     "Invalid File Type (Only .png)",
            htmlMessage: "Invalid File Type (Only .png)" 
        }
        return false;
    }
    return true;
}
</script>