struts2入门教程三(上传与下载)(一)

2014-11-24 02:01:30 · 作者: · 浏览: 0

文件的上传与下载

上传

Servlet3.0的上传改进

HttpServletRequest增加了对文件上传的支持

Part getPart(String name)通过名称获取文件上传域

Collection getParts() 获取所有文件上传域

表单属性enctype,数据表单编码方式

application/x-www-form0urlencoded

multipart/form-data

text/plain

java 代码

package action;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@MultipartConfig
public class uploadServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		response.setContentType("text/html;charset=UTF-8");
		
		PrintWriter out=response.getWriter();
		String fileName=request.getParameter("name");
		Part part=request.getPart("file");
		
		out.println("上传文件的类型:"+part.getContentType()+"
"); out.println("上传文件的大小"+part.getSize()+"
"); Collection headerNames=part.getHeaderNames(); for(String headerName:headerNames){ out.println(headerName+"-->"+part.getHeader(headerName)+"
"); } // 这里 路径为绝对路径 / 表示 的是 webroot 的 根路径 part.write(getServletContext().getRealPath("/uploadFiles")+"/"+fileName); } }

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>




  
    
    My JSP 'index.jsp' starting page
	
  
  
  
   
  
文件名: 文件:

web.xml

  

  
  
   
    upload2
   
  
  
    
    
     upload
     
    
     action.uploadServlet
     
   
  
    
    
     upload
     
    
     /uploadServlet
     
   
  
    
    
     index.jsp
     
   

  

运行方式及结果

\
\

struts2单文件上传

java代码

package action;

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

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String title;
	private File upload;
	private String uploadContentType;
	private String uploadFileName;
	private String savePath;
	
	public String upload()throws Exception{
		FileInputStream fis=new FileInputStream(getUpload());
		FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getUploadFileName());
		byte[] buffer=new byte[1024];
		int len=0;
		while((len=fis.read(buffer))>0){
			fos.write(buffer,0,len);
		}
		
		fos.close();
		fis.close();
		
		return SUCCESS;
		
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	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;
	}

	public String getSavePath() {
		// 返回 绝对路径
		return ServletActionContext.getServletContext().getRealPath(savePath);
	}