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,我可以上传文件使用以下简单的代码,但我需要强制用户上传特定类型的文件。目前,用户可以上传任何类型的文件,我可以在后端检查扩展名,但我首先需要强制他们只上传图像。我应该如何做到允许浏览文件(*.images)而不是所有文件(**)呢 ... 您可以使用HTML 如果type属性的值为file,则该属性表示服务器接受的文件类型;否则就是这样 忽略。该值必须是以逗号分隔的唯一内容列表 类型说明符: 以停止字符(U+002E)开头的文件扩展名。(例如:“.jpg;.png;.doc”) 没有扩展名的

我可以上传文件使用以下简单的代码,但我需要强制用户上传特定类型的文件。目前,用户可以上传任何类型的文件,我可以在后端检查扩展名,但我首先需要强制他们只上传图像。我应该如何做到允许浏览文件(*.images)而不是所有文件(**)呢


...
您可以使用HTML

如果type属性的值为file,则该属性表示服务器接受的文件类型;否则就是这样 忽略。该值必须是以逗号分隔的唯一内容列表 类型说明符:

  • 以停止字符(U+002E)开头的文件扩展名。(例如:“.jpg;.png;.doc”)
  • 没有扩展名的有效MIME类型
  • 音频/*表示声音文件(HTML5
  • 视频/*表示视频文件(HTML5
  • image/*表示图像文件(HTML5
它也可以与
一起使用,因为它允许动态属性


编辑:您是对的,由于某些原因,扩展和mime检查失败,只有HTML5方式有效:

然后,这将起作用(在大多数浏览器中),建议选择一个图像:

 <s:file name="file" label="Upload Image" accept="image/*" />

如果我使用拦截器的allowedExtensions和allowedTypes参数怎么样?我还添加了属性,但它仍然适用于所有类型的文件。目前,我正在使用FilenameUtils.getExtension(fname)检查后端文件的扩展名;你知道有更好的解决方案吗?你是对的,文档中的前两个示例不起作用。请查看更新的答案。对于其余的,当然使用文件上传拦截器,使用Struts2,您不需要使用FilenameUtils或其他任何东西,它已经内置使用了图像/*并且它现在正在查找图像,但有一个问题,它正在查找所有类型的图像,jpe、jpg、jpeg,但我需要查找特定的图像(仅jpeg、png和gif),而不是所有的文件(*.*)您的意思是将抽象浏览器设置为不将此筛选器添加到对话框的条件吗?@RomanC我的意思是只需要它接受图像而不是任何其他类型的文件。您希望如何接受它们?
accept
 <s:file name="file" label="Upload Image" accept="image/*" />