您可以使用HTML <input type="file" />
的the accept
attribute。
accept
如果type属性的值是文件,该属性指示类型的服务器接受的文件;否则就是 被忽略。该值必须是一个以逗号分隔的独特内容 类型说明符列表:
- 文件扩展开始与STOP字符(U + 002E)。 (例如: “.JPG; png格式; .DOC”)
- 有效MIME类型没有扩展
- 音频/ *表示声音文件(HTML5)
- 视频/ *表示视频文件(HTML5)
- 图像/ *代表图像文件(HTML5)
它将与<s:file />
也因为工作它允许动态属性。
编辑:你是对的,因为某些原因,延伸和哑剧检查失败,只有HTML5的工作方式:running demo
那么这将工作(在大多数浏览器,check out the curent compatibility here),提示图像被选择:
<s:file name="file" label="Upload Image" accept="image/*" />
它是一个非块滤波器,但是:*.*
仍然是选择素表格从对话框中选择;
由于这只是一个客户端过滤,所以你的必须还要检查contentType,最后是扩展名,服务器端用Struts2 File Upload Interceptor。
例如:
<interceptor-ref name="fileUpload">
<param name="allowedTypes">
image/png,image/gif,image/jpeg
</param>
<param name="allowedExtensions">
.png,.gif,.jpeg,.jpg
</param>
</interceptor-ref>
_not所有文件(*。*)_你的意思是一个抽象的浏览器设置的条件不是这个过滤器添加到对话? –
@RomanC我的意思是只需要它接受图像而不是任何其他类型的文件。 – Jack
你想如何接受他们? –