在ASP.NET MVC应用程序中没有像ActiveX,Flash或Java Applet这样的客户端对象(JavaScript可以),是否可以想象当弹出上传文件对话框时,它可能是只会显示我指定的文件吗?
例如,只有扩展名为.docx或docx和jpg的文件才能在类似打开文件的对话框中显示和选择,以便选择要上传的文件。
我已经读过浏览器支持此功能的问题,虽然它应该适用于正确的设置?
如果我能得到一些例子,并且有些人对此表示赞同,那就太棒了。
AjaxControlKit会支持这个功能吗?
谢谢,
里克
答案 0 :(得分:2)
您无法过滤文件上传对话框中显示的文件。这取决于浏览器,没有浏览器提供此功能。
但是,一旦选择了文件,就可以使用JavaScript检查它的值。您可以处理表单元素的submit事件,并将文件输入的值与正则表达式匹配。这是一些未经测试的示例代码:
<script type="text/javascript">
function check(event)
{
if (!document.getElementById('file').value.match(/.*\.jpg/))
{
alert('File must have .jpg extension. Please try again.');
return false;
}
return true;
}
</script>
<form action="page.html" onsubmit="check">
<input type="file" name="file" id="file"/>
</form>
答案 1 :(得分:2)
input元素支持chrome等现代浏览器支持的accept属性:
<input id="file" type="file" name="file" size="30"
accept="image/jpg,image/png,image/jpeg,image/gif">
遗憾的是IE不支持,甚至IE9都不支持。
此致 马丁科尔多瓦 www.martincordova.com Dinamica - 基于Eclipse的webapp生成器的Java EE / Ajax / SQL框架。