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

在丰富的文件上传中,我给出了 acceptedTypes="xls" ,但在文件选择框中的“添加”文件类型显示全部。我想将其限制为仅某些特定格式,我该怎么做。任何形式的帮助都是appriciated,在此先感谢..

4

2 回答 2

2

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

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

但是,它不会那样做。相反,它会生成一个简单<input type="file">的不带该accept属性的 HTML4 兼容,并通过 JavaScript 对所选文件进行文件扩展名检查。

所以你在这里不走运。您基本上需要将 替换为<rich:fileUpload>另一个组件,该组件会生成所需的 HTML,并accept<input type="file">. 就我现在所见,还没有一个 JSF 组件库提供这样的组件。你可能需要自己种植它。

也可以看看:

于 2013-01-08T15:11:04.757 回答
2

这种替代方式可能会在一定程度上解决您的问题。如下向您的组件添加一个onclick事件。<rich:fileUpload

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