struts2的上传与下载

 首先,建立action处理类FileUploadAction,并实现模型驱动化接口ModelDriven<FileInfo>:

 

Java代码:
public class FileUploadAction extends ActionSupport implements ModelDriven<FileInfo>
{
	FileInfo fileinfo=new FileInfo();   //封装文件信息

	public FileInfo getModel()
	{ 
		return fileinfo;
	}
	
	@Override
	public String execute() throws Exception 
	{
		//获得服务器上保存上传文件的目录updfile的绝对路径
		String realpath=ServletActionContext.getServletContext().getRealPath("/updfile");
		//设置保存文件的路径
		fileinfo.setTargetdir(realpath);
		//设置目标文件名
		fileinfo.setTargetfilename(generateFileName(fileinfo.getDocFileName()));
		//把doc内容复制到target
		FileUtils.copyFile(fileinfo.getDoc(), new File(fileinfo.getTargetdir(),fileinfo.getTargetfilename()));
		
		return SUCCESS;
	}
	//产生唯一的文件名
	private synchronized String generateFileName(String filename)
	{
		int position=filename.lastIndexOf(".");
		String ext=filename.substring(position);
		
		return System.nanoTime()+ext;
	}
	
}

 

 附:javabean实体类:  

public class FileInfo 
{
	private File doc;  				//封装上传文件的属性
	private String docFileName;		//封装上传文件的名称属性
	private String docContentType;  //封装上传文件的类型属性
	private String targetdir;   	//保存路径
	private String targetfilename;  //保存的文件名
	
	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 getDocContentType() {
		return docContentType;
	}
	public void setDocContentType(String docContentType) {
		this.docContentType = docContentType;
	}
	public String getTargetdir() {
		return targetdir;
	}
	public void setTargetdir(String targetdir) {
		this.targetdir = targetdir;
	}
	public String getTargetfilename() {
		return targetfilename;
	}
	public void setTargetfilename(String targetfilename) {
		this.targetfilename = targetfilename;
	}
}

 

   至此任务已经完成了一大半,接下来就是配置Struts.xml文件即可

 

   

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.0.dtd">
	
<struts>
	<constant name="struts.i18n.encoding" value="GBK"></constant>
	
      <package name="action" extends="struts-default">
 		<action name="fileupload" class="action.FileUploadAction">
 			<result>/success.jsp</result>
 			<result name="input">/index.jsp</result>
 			
 	</action>
 		
       </package>
</struts>

 

   ok,jsp操作即可:

 

    index.jsp页面

 

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
       <!--enctype="multipart/form-data"用来指定表单数据的编码方式  -->
    <s:form action="fileupload" method="post" enctype="multipart/form-data"> 
    	上传文件:<s:file name="doc"></s:file><br/>
    	<s:submit value="上传"></s:submit>
    </s:form>
  </body>
</html>

 

    操作成功界面 success.jsp

Java代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>   
  2. <%@ taglib prefix="s" uri="/struts-tags" %>   
  3.   
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
  5. <html>   
  6.   <head>   
  7.        
  8.   </head>   
  9.      
  10.   <body>    
  11.     上传文件类型:<s:property value="docContentType"/><br>   
  12.     上传成功后文件位置:<s:property value="targetdir"/><br>   
  13.     上传图片:<img  src="<s:property value="'updfile/'+targetfilename"/>"><br>   
  14.   </body>   
  15. </html>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值