丰富的文件上传显示添加的所有文件,即使对于已接受类型= "xls"


<rich:fileUpload fileUploadListener="# {bean.fileUploadAction}"
 immediateUpload="true" acceptedTypes="xls" maxFilesQuantity="1">        
</rich:fileUpload>

在富文件上传中,如果给定acceptedTypes="xls",但在文件选择框中"add"显示所有类型的文件。我想把它限制为某种特定的格式我怎么能做到呢。任何形式的帮助都是感激的,提前感谢…

这种替代方法可能在某种程度上解决你的问题。向<rich:fileUpload组件添加一个onclick事件,如下所示。

<rich:fileUpload onclick="this.getElementsByTagName('input')[0].setAttribute('accept', 'application/vnd.ms-excel');" fileUploadListener="# {bean.fileUploadAction}"
 immediateUpload="true" maxFilesQuantity="1">        
</rich:fileUpload>

这只有在它生成以下HTML(并且该页面是由HTML5兼容的web浏览器打开的)时才有可能:

<input type="file" ... accept="application/vnd.ms-excel" />

然而,它不这样做。相反,它生成一个简单的HTML4兼容的<input type="file">,没有accept属性,并通过JavaScript对所选文件进行文件扩展检查。

所以你运气不好。您基本上需要用另一个组件替换<rich:fileUpload>,该组件生成所需的HTML,并在<input type="file">上设置适当的accept属性。就我目前所见,还没有一个JSF组件库提供这样的组件。你可能需要自己种植。

参见:

  • HTML5规范- type=file
  • accept属性

相关内容

  • 没有找到相关文章

最新更新