struts上传文件

package com.web.struts.action;

import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

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

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {

 	//上传文件属性
	private File doc;
	//上传文件对应的文件名
	private String docFileName;
	//文件类型
	private String docContextType;
	//文件描述
	private String description;
	
	public File getDoc() {
		return doc;
	}
	public void setDoc(File doc) {
		this.doc = doc;
	}
	public String getDocFileName() {
		return docFileName;
	}
	public void setDocFileName(String docFileName) {
		this.docFileName = docFileName;
	}
	public String getDocContextType() {
		return docContextType;
	}
	public void setDocContextType(String docContextType) {
		this.docContextType = docContextType;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		//获得文件上传的上传目录
		String realPath=ServletActionContext.getServletContext

().getRealPath("upload");
		
		System.out.println("realPath:"+realPath);
		//保存文件的文件名
		String newFileName=getNameFile(this.getDocFileName());
		//创建一个目标文件
		File target =new File(realPath+File.separator+newFileName);
		//将临时的文件复制到目标文件
		FileUtils.copyFile(doc, target);
		
		return super.execute();
	}
	
	//获得新文件的名称
	private String getNameFile(String docFileName2) {
		// TODO Auto-generated method stub
		//获得当前时间
		DateFormat format=new SimpleDateFormat("yyMMddHHmmss");
		//转化为字符串
		String formatDate=format.format(new Date());
		//随即生成文件编号
		int random=new Random().nextInt(10000);
		//获得文件后缀名
		int position=docFileName.lastIndexOf(".");
		String extendsion=docFileName.substring(position);
		//组成一个新的文件名称
		return formatDate+random+extendsion;
	}
	

 

<%@ taglib prefix="s" uri="/struts-tags"%>



 <body>
    <s:form action="fileUPload" method="post" enctype="multipart/form-data">
    	<s:file name="doc" label="请选择上传文件"></s:file>
    	<s:textfield name="description" label="文件描述"></s:textfield> 
    	<s:submit value="上传"></s:submit>
    </s:form>
  </body>

 

 

<%@ taglib prefix="s" uri="/struts-tags"%>

 <body> 
    上传的文件名 :<s:property value="docFileName"/>
    上传的文件类型:<s:property value="docContentType"/>
    文件的描述:<s:property value="description"/>
  </body>

 

你可能感兴趣的:(struts上传文件例子)