如何限制用户上传某种类型的文件?

时间:2013-05-27 01:56:38

标签: jsp file-upload struts2

我需要限制用户上传某些类型的文件,我该怎么做?我知道我可以接收文件并检查ContentType变量,但我需要更改浏览器查找文件的方式。

让我们说所需的文件类型是csv,当他们点击上传并打开窗口查找文件系统中的文件时,他们应该只能 查看带有csv扩展名的文件< / EM> 即可。通过这种方式,他们被迫上传CSV文件,因为没有其他文件可供选择。

<s:form id="uploadCSV" method="POST" action="add"  enctype="multipart/form-data">
    <s:file name="csv" label="Upload File"/>
    <s:submit/>
</s:form>

2 个答案:

答案 0 :(得分:3)

某些浏览器支持“accept”属性和“输入文件”控件。如果您正在寻找所有浏览器支持,您可能需要使用任何基于闪存的上传插件。

除此之外,正如您所说,检查ContentType是唯一的方法。

答案 1 :(得分:1)

HTML5标准为输入元素指定accept attribute。它允许您指定MIME类型和扩展名,标准建议指定两者,因此您的代码应如下所示:

<input type="file" accept=".csv,text/csv"></input>

HTML4 does not allow specifying extensions,因此您只能使用MIME类型:

<input type="file" accept="text/csv"></input>