(27) java web的struts2框架的使用-基于表单的多文件上传

Posted 洋子哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(27) java web的struts2框架的使用-基于表单的多文件上传相关的知识,希望对你有一定的参考价值。

和单个文件上传配置都是一样的,只是在action中接受参数时候,接受的是数组,不再是单个的文件。

一,action的实现:

public class MutableFilesUpload extends ActionSupport {

	private static final long serialVersionUID = 1L;
	
	public File[] uploadObjects;
	public String[] uploadObjectsFileName;
	public String[] uploadObjectsContentType;
	
	public String moreInfo;

	public String upload() {
		
		System.out.println(moreInfo);

		// 1.拿到ServletContext
		ServletContext servletContext = ServletActionContext
				.getServletContext();
		// 2.调用realPath方法,获取根据一个虚拟目录得到的真实目录
		String realPath = servletContext.getRealPath("/files");
		// 3.如果这个真实的目录不存在,需要创建
		File file = new File(realPath);
		if (!file.exists()) {
			file.mkdirs();
		}
		// 4.把文件存过去
		// 剪切:把临时文件剪切指定的位置,并且给他重命名。 注意:临时文件没有了
		for (int i = 0; i < uploadObjects.length; i++) {
			System.out.println("one file name: " + uploadObjectsFileName[i]);
			uploadObjects[i].renameTo(new File(file, uploadObjectsFileName[i]));
		}

		return SUCCESS;
	}

}

  

二,配置action

<action name="mutable_uploads" class="gy.upload.MutableFilesUpload" method="upload">

  <!-- 指定(限制)上传文件的类型,定义局部拦截器,修改默认拦截器的属性 "fileUpload.maximumSize" :限制上传最大的文件大小。 
				"fileUpload.allowedTypes":允许上传文件的类型。 "fileUpload.allowedExtensions":允许上传文件的可扩展文件类型。 -->
  <interceptor-ref name="defaultStack">
    <param name="fileUpload.maximumSize">500000000</param>
    <param name="fileUpload.allowedTypes">text/plain,application/vnd.ms-powerpoint</param>
    <param name="fileUpload.allowedExtensions">.txt,.ppt</param>
  </interceptor-ref>

  <result>/success.html</result>
  <!-- 出现错误自动会返回input结果,进入结果视图 -->
  <result name="input">/fail.html</result>
</action>

 

三,表单的实现

<body>
	<form action="mutable_uploads" method="post"
		enctype="multipart/form-data">
		文件:<br> 
		<input type="file" name="uploadObjects"><br>
		<input type="file" name="uploadObjects"><br> 
		more info:
		<input type="text" name="moreInfo"><br>
		<input type="submit" value="提交"><br>
	</form>
</body>

  

  

以上是关于(27) java web的struts2框架的使用-基于表单的多文件上传的主要内容,如果未能解决你的问题,请参考以下文章

Struts2框架 Web.xml, Struts.xml, Action.Java 基本配置

(21) java web的struts2框架的使用

为什么做Java的web开发我们会使用struts2,springMVC和spring这样的框架?

(25) java web的struts2框架的使用-基于表单的文件上传

CTFshow刷题日记-WEB-JAVA(web279-300)Struts2全漏洞复现,Java漏洞复现

(22) java web的struts2框架的使用-struts配置文件