繁体   English   中英

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

[英]How can I restrict the file type in the file browse menu of an AsyncFileUpload in the ASP.NET AJAX Control Toolkit

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

有什么办法可以将其更改为“仅限PNG”或“ * .png”?

这是使用ASP.NET AJAX控件工具包中的AsyncFileUpload。

这个正在为我工​​作(感谢DavRob的启发)。

<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>

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

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

然后在您的页面中包含此脚本或包含以下脚本:

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;
}

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

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

但是,新功能是您可以获取源代码并添加属性来处理此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM