如何过滤上传对话框中可以看到哪些文件?

时间:2009-10-16 05:28:15

标签: asp.net javascript html

在ASP.NET MVC应用程序中没有像ActiveX,Flash或Java Applet这样的客户端对象(JavaScript可以),是否可以想象当弹出上传文件对话框时,它可能是只会显示我指定的文件吗?

例如,只有扩展名为.docx或docx和jpg的文件才能在类似打开文件的对话框中显示和选择,以便选择要上传的文件。

我已经读过浏览器支持此功能的问题,虽然它应该适用于正确的设置?

如果我能得到一些例子,并且有些人对此表示赞同,那就太棒了。

AjaxControlKit会支持这个功能吗?

谢谢,

里克

2 个答案:

答案 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框架。