struts2.1上传文件实例

<filter>
		<filter-name>struts-cleanup</filter-name>
		<filter-class> org.apache.struts2.dispatcher.ActionContextCleanUp 
		</filter-class>
	</filter>
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class> org.apache.struts2.dispatcher.FilterDispatcher 
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts-cleanup</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
 
<%@page language="java" contentType="text/html;charset=utf-8"
	pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Struts2FileUpload</title>
</head>
<body>
<s:form action="fileUpload" method="POST" enctype="multipart/form-data">
	<s:file name="myFile" label="ImageFile" />
	<s:textfield name="caption" label="Caption" />
	<s:submit />
</s:form>
</body>
</html>
 
<%@page language="java" contentType="text/html;charset=utf-8"
	pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Struts2FileUpload</title>
</head>
<body>
<div style="padding: 3px; border: solid1px #cccccc; text-align: center">
<img src='UploadImages/<s:property value="imageFileName"/>' /> <br />
<s:property value="caption" /></div>
</body>
</html>
 
<action name="fileUpload" class="com.action.FileUploadAction">
			<interceptor-ref name="fileUpload">
				<param name="allowedTypes"> image/bmp,image/png,image/gif,image/pjpeg,image/jpg </param>
			</interceptor-ref>
			<interceptor-ref name="defaultStack" />
			<result>/ShowUpload.jsp</result>
		</action>
 
package com.action;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport {
	private static final long serialVersionUID = 572146812454l;
	private static final int BUFFER_SIZE = 16 * 1024;

	private File myFile;
	private String contentType;
	private String fileName;
	private String imageFileName;
	private String caption;

	public void setMyFileContentType(String contentType) {
		this.contentType = contentType;
	}

	public void setMyFileFileName(String fileName) {
		this.fileName = fileName;
	}

	public void setMyFile(File myFile) {
		this.myFile = myFile;
	}

	public String getImageFileName() {
		return imageFileName;
	}

	public String getCaption() {
		return caption;
	}

	public void setCaption(String caption) {
		this.caption = caption;
	}

	private static void copy(File src, File dst) {
		try {
			InputStream in = null;
			OutputStream out = null;
			try {
				in = new BufferedInputStream(new FileInputStream(src),
						BUFFER_SIZE);
				out = new BufferedOutputStream(new FileOutputStream(dst),
						BUFFER_SIZE);
				byte[] buffer = new byte[BUFFER_SIZE];
				while (in.read(buffer) > 0) {
					out.write(buffer);
				}
			} finally {
				if (null != in) {
					in.close();
				}
				if (null != out) {
					out.close();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static String getExtention(String fileName) {
		int pos = fileName.lastIndexOf(".");
		return fileName.substring(pos);
	}

	@Override
	public String execute() {
		System.out.println("执行啦");
		imageFileName = new Date().getTime() + getExtention(fileName);
		File imageFile = new File(ServletActionContext.getServletContext()
				.getRealPath("/UploadImages")
				+ "/" + imageFileName);
		copy(myFile, imageFile);
		return SUCCESS;
	}

}
 

你可能感兴趣的:(java,apache,html,jsp,struts)