Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何限制用户上传特定类型的文件?_Jsp_File Upload_Struts2 - Fatal编程技术网

Jsp 如何限制用户上传特定类型的文件?

Jsp 如何限制用户上传特定类型的文件?,jsp,file-upload,struts2,Jsp,File Upload,Struts2,我需要限制用户上传某些类型的文件,我应该怎么做?我知道我可以接收文件并检查ContentType变量,但我需要更改他们的浏览器查找文件的方式 假设所需的文件类型为csv,当他们单击“上载”并打开窗口以查找文件系统中的文件时,他们应该只能看到扩展名为csv的文件。通过这种方式,他们被迫上传CSV文件,因为没有其他文件可供选择 <s:form id="uploadCSV" method="POST" action="add" enctype="multipart/form-data">

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

假设所需的文件类型为csv,当他们单击“上载”并打开窗口以查找文件系统中的文件时,他们应该只能看到扩展名为csv的文件。通过这种方式,他们被迫上传CSV文件,因为没有其他文件可供选择

<s:form id="uploadCSV" method="POST" action="add"  enctype="multipart/form-data">
    <s:file name="csv" label="Upload File"/>
    <s:submit/>
</s:form>
有些浏览器支持带有输入文件控件的属性。如果您正在寻找所有的浏览器支持,您可能需要使用任何基于flash的上传插件

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

一些浏览器支持带有输入文件控件的属性。如果您正在寻找所有的浏览器支持,您可能需要使用任何基于flash的上传插件


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

HTML5标准为输入元素指定了一个。它允许您指定MIME类型和扩展,标准建议同时指定这两种类型,因此您的代码应该如下所示:

<input type="file" accept=".csv,text/csv"></input>
HTML4,因此只能使用MIME类型:

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

HTML5标准为输入元素指定了一个。它允许您指定MIME类型和扩展,标准建议同时指定这两种类型,因此您的代码应该如下所示:

<input type="file" accept=".csv,text/csv"></input>
HTML4,因此只能使用MIME类型:

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

并非所有浏览器都支持html5。是否有其他替代方案?是的,使用HTML4。但似乎所有主流浏览器都支持HTML5 accept属性:除此之外,您可以执行一些客户端JS验证来检查扩展名,但这并不限制输入对话框中可用的文件。并非所有浏览器都支持HTML5。是否有其他替代方法?是的,使用HTML4。但似乎所有主流浏览器都支持HTML5 accept属性:除此之外,您可以执行一些客户端JS验证来检查扩展名,但这不会限制输入对话框中可用的文件。我使用的是not INPUTTH,这应该不会有问题,您还可以使用与Bean属性同名的普通HTML输入文件标记。Struts将负责绑定。我使用的是not INPUTPUT。这应该不是问题,您也可以使用与Bean属性同名的普通HTML输入文件标记。Struts将负责绑定。要运行测试,可以使用以下命令:要运行测试,可以使用以下命令: