使用Struts2实现文件上传

    Struts2框架使用一个fileuploadinterceptor来完成文件上传,而我们提供相应的参数并配置后便可实现上传的功能

    第一步:提供相应的jar包 使用Struts2实现文件上传_第1张图片

               并在web.xml中配置拦截器 

        
		struts2Filter
		
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		
	

	
		struts2Filter
		/*
	
    第二步:提供上传文件的jsp页面



Insert title here


	
    第三步:提供相应的Action
package com.itheima.action;

import java.io.File;
import java.io.IOException;

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

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport{
	
	private File upload;	//上传的文件    需要与jsp页面文件上传框的name属性一致
	private String uploadContentType;//上传文件的mimeType类型     在文件参数后加ContentType
	private String uploadFileName;	//上传文件的名称    在文件参数后加FileName
	public void uploadFile(){
		// 得到upload目录在tomcat的绝对磁盘路径
		String path=ServletActionContext.getServletContext().getRealPath("/upload");
		File dest = new File(path,uploadFileName);// 创建一个服务器端文件
		try {
			// 完成文件上传操作
			FileUtils.copyFile(upload, dest);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	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;
	}
}
    第四步:在src文件下配置struts.xml文件





	
	
	
	
		
			
			
				 
				 
				jpg,txt 
			
				
			/error.jsp
		

	
注:当需要上传多个文件时,把Action接受的参数类型改为数组

然后在上传文件的方法中添加循环就可以使用Struts2实现文件上传_第2张图片

你可能感兴趣的:(Struts2)