如何限制ASP.NET AJAX控件工具包中AsyncFileUpload的文件浏览菜单中的文件类型
我想限制他们在文件上传对话框中看到的内容,该对话框默认设置为“所有文件”。我理解如何验证他们只上传了特定的文件类型,这不是这里的问题。我只想知道如何在文件选择对话框中默认文件类型 有没有办法将其更改为“仅PNG”或“*.PNG”如何限制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
这是在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>