我希望限制用户在文件上传对话框中看到的内容,默认情况下为“所有文件”。我知道如何验证他们只上传了某种文件类型,这不是问题所在。我只想知道如何将文件类型默认为文件选择对话框中的“PNG only”或“*.png”。
是否有任何方法可以实现这一点?
这是在ASP.NET AJAX控件工具包中使用AsyncFileUpload。
我希望限制用户在文件上传对话框中看到的内容,默认情况下为“所有文件”。我知道如何验证他们只上传了某种文件类型,这不是问题所在。我只想知道如何将文件类型默认为文件选择对话框中的“PNG only”或“*.png”。
是否有任何方法可以实现这一点?
这是在ASP.NET AJAX控件工具包中使用AsyncFileUpload。
<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
并停止上传/设置错误消息(可选)。