`

文件上传 Struts2 fileupload

 
阅读更多

struts2文件上传下载非常的简单。

 

给我们提供了非常简洁的方式来上传文件。

 

其中我们需要用到的jar文件主要是:commons-io-1.3.2.jar 和 commons-fileupload-1.2.1.jar

 

然后需要注意的是,我们在写表单的时候,就是必须在写页面表单的时候 需要 将form表单的

enctype="multipart/form-data"

 

前台

 

 

<form enctype="multipart/form-data"
		action="${pageContext.request.contextPath}/test/file/upload.action" method="post">
		<input type="file" name="uploadImage">
		<input type="submit" value="upload">
</form>

 

 

struts2配置文件

 

 

<package name="file" namespace="/test/file" extends="struts-default">
		<action name="*" class="com.anduo.action.FileUploadAction" method="{1}">
			<result name="success">/success.jsp</result>
                </action>
</package>

 

 

后台Action 代码

 

 

package com.anduo.action;

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class FileUploadAction {
	private File uploadImage;// 得到上传的文件 特别注意的是在这里的文件名必须跟前台的input 标签中的name 一致
	private String uploadImageContentType;// 得到文件的类型
	private String uploadImageFileName;// 得到文件的名称

	

	// 这里略省了属性的getter/setter方法


	public String upload() throws Exception {
		// 获得项目路径
		String realpath = ServletActionContext.getServletContext().getRealPath(
				"/images");
		if (uploadImage != null) {
			File file = new File(realpath);
			if (!file.exists()) {
				file.mkdirs();
			}
			FileUtils.copyFile(uploadImage, new File(file, uploadImageFileName));
			ActionContext.getContext().put("message",
					"文件上传成功!" + realpath + "/" + uploadImageFileName);
		}
		return "success";
	}
}

 

success.jsp

 

${message}
 

请看效果

 




 

 



上文文件成功了吧。

 

如果我们没有指定上传文件的存放路径,struts2会在action结束后移除临时文件

 

也就是我们根本就找不到我们上传的东西了。吼吼~~~

 

  • 大小: 4.7 KB
  • 大小: 12 KB
  • 大小: 49.2 KB
  • 大小: 11.9 KB
  • 大小: 13.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics