`

图片上传功能

阅读更多
1.建一个工程upload-test
2.搭建struts环境
3.建一个upload.jsp 页面,创建form表单
<form action="doUpload" method="post" enctype="multipart/form-data">
    <input type="file" name="upload"/>
    <input type="submit" value="上传"/>
    </form>
4.配置struts.xml文档
<struts>
	<constant name="struts.multipart.maxSize" value="5000000"/>
	<package name="default" extends="struts-default" namespace="/">
		<action name="doUpload" class="action.UploadAction" method="doUpload">
			<!-- 引用文件上传拦截器 -->
			<interceptor-ref name="fileUpload">
				<param name="maximumSize">1000000</param><!-- 单个文件上传大小 -->
				<param name="allowedExtensions">jpg,jpeg,gif,peng</param><!--上传文件类型 -->
			</interceptor-ref>
			<!-- 引用默认的拦截器栈 -->
			<interceptor-ref name="defaultStack"/>
			<result>/jsp/success.jsp</result>
		</action>
	
	</package>
</struts>    



5.编写 action类
package action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

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

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {
	private File upload;//文件
	private String uploadContentType;//上传文件类型
	private String uploadFileName;//文件名称
		
	
	//上传文件
	public String doUpload(){
		//声明输入、输出流对象
		FileInputStream fis=null;
		FileOutputStream fos=null;
		//调用ServletActionContext类的方法得到保存文件的路径及名称
		try {
			String savePath=ServletActionContext.getServletContext().getRealPath("/upload/"+this.uploadFileName);
			//创建文件输入流对象
			fis=new FileInputStream(upload);
			//创建文件输出流对象
			fos=new FileOutputStream(savePath);
			//复制输入流到输出流
			IOUtils.copy(fis, fos);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			try {
				fos.flush();
				fos.close();
				fis.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return "success";
	}
	
	
	
	//setter/getter方法
	public File getUpload() {
		return upload;
	}
	public void setUpload(File upload) {
		this.upload = upload;
	}
	public String getUploadContentType() {
		return uploadContentType;
	}
	public void setUploadContentType(String uploadContentType) {
		this.uploadContentType = uploadContentType;
	}
	public String getUploadFileName() {
		return uploadFileName;
	}
	public void setUploadFileName(String uploadFileName) {
		this.uploadFileName = uploadFileName;
	}
	
	
	
}






0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics