Struts1 上传文件

转载 2011年01月13日 10:03:00

利用Struts上传文件是非常方便的,与smartUpload相比最大的优点在于它可以上传很大的文件,测试的时候两百多兆是可以的,四百多就不行了,它应该是有个配置,不过现在还没有搞明白。先贴一贴昨天晚上写得代码吧。
首先是上传界面的代码:

Html代码 复制代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>  
  3. <%   
  4. String path = request.getContextPath();   
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   
  6. %>  
  7. <html:html>  
  8.     <head>  
  9.         <title>Struts上传文件</title>  
  10.     </head>  
  11.     <body>  
  12.         <!-- 这里需要注意的是method一定要设成post,还要设置enctype为multipart/form-data-->  
  13.         <html:form action="upload" enctype="multipart/form-data" method="post">  
  14.             <table>  
  15.                 <tr>  
  16.                     <td>  
  17.                         <div>  
  18.                             <html:file property="file" size="30"></html:file>  
  19.                         </div>  
  20.                     </td>  
  21.                 </tr>  
  22.                 <tr>  
  23.                     <td>  
  24.                         <div>  
  25.                             <html:submit property="upload" value="上传"></html:submit>  
  26.                         </div>  
  27.                     </td>  
  28.                 </tr>  
  29.             </table>  
  30.         </html:form>  
  31.     </body>  
  32. </html:html>  


然后是页面对应的ActionForm,你可以写成一个普通的ActionForm,也可以写成一个动态的ActionForm,这里我写成了一个普通的ActionForm
UploadForm:

Java代码 复制代码
  1. package forms;   
  2.   
  3. import org.apache.struts.action.ActionForm;   
  4. import org.apache.struts.upload.FormFile;   
  5.   
  6. public class UploadForm extends ActionForm {   
  7.     private String filename;   
  8.     private FormFile file;   
  9.     public FormFile getFile() {   
  10.         return file;   
  11.     }   
  12.     public void setFile(FormFile file) {   
  13.         this.file = file;   
  14.     }   
  15.     public String getFilename() {   
  16.         return filename;   
  17.     }   
  18.     public void setFilename(String filename) {   
  19.         this.filename = filename;   
  20.     }   
  21.        
  22. }  


处理业务的Action:
UploadAction:

Java代码 复制代码
  1. package actions;   
  2.   
  3. import java.io.FileOutputStream;   
  4. import java.io.InputStream;   
  5. import java.io.OutputStream;   
  6.   
  7. import javax.servlet.http.HttpServletRequest;   
  8. import javax.servlet.http.HttpServletResponse;   
  9.   
  10. import org.apache.struts.action.Action;   
  11. import org.apache.struts.action.ActionForm;   
  12. import org.apache.struts.action.ActionForward;   
  13. import org.apache.struts.action.ActionMapping;   
  14. import org.apache.struts.upload.FormFile;   
  15.   
  16. import forms.UploadForm;   
  17.   
  18. public class UploadAction extends Action {   
  19.     @Override  
  20.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception {   
  21.         UploadForm uf=(UploadForm)form;   
  22.         String filename=uf.getFilename();   
  23.         FormFile file=uf.getFile();   
  24.         if(file!=null){   
  25.             System.out.println("我叫"+file.getFileName());   
  26.         }   
  27.         //这里需要注意的是request.getRealPath();已经废弃,可以通过   
  28.                 //下面的方法来替代   
  29.         String path=req.getSession().getServletContext().getRealPath("/");   
  30.         InputStream in=file.getInputStream();   
  31.         OutputStream out=new FileOutputStream(path+"/upload/"+file.getFileName());   
  32.         int read=0;   
  33.         byte[] buffer=new byte[1024];   
  34.         while((read=in.read(buffer,0,1024))!=-1){   
  35.             out.write(buffer, 0, read);   
  36.         }   
  37.         in.close();   
  38.         out.close();   
  39.         return mapping.findForward("uploadsuc");   
  40.     }   
  41. }  


Struts-config.xml的配置:

Java代码 复制代码
  1. <form-beans>   
  2.     <form-bean name="uploadform" type="forms.UploadForm"></form-bean>   
  3. </form-beans>   
  4.     <action path="/upload"  
  5.             type="actions.UploadAction"  
  6.             name="uploadform"  
  7.             input="/test/upload.jsp"  
  8.             scope="request"  
  9.     >   
  10.         <forward name="uploadsuc" path="/test/uploadsuc.jsp"/>   
  11.     </action>  

Struts1.x系列教程(9):上传任意多个文件

转自: http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0...
  • DADADIE
  • DADADIE
  • 2015年04月21日 21:05
  • 1334

Struts1.3——文件上传和下载

本文介绍了Struts实现文件上传和下载的方法
  • ggGavin
  • ggGavin
  • 2016年07月28日 18:16
  • 1844

JAVA EE项目常用之 struts1.2 文件上传的两种方法

struts1,springMVC 框架上传下载文件的方法
  • xiaohai798
  • xiaohai798
  • 2013年09月13日 23:53
  • 6821

利用struts1 formfile实现文件上传功能

一、界面配置      /images/common/csw_toux.gif"/>    账户管理> 账号管理 > 资料设置  您可以在下方选择自己喜欢的头像,更新后的头像将稍后显示在其它页面!...
  • honghailiang888
  • honghailiang888
  • 2016年05月20日 11:16
  • 1702

struts1中struts 的html标签上传Excel文件

上个星期系统里面要添加上传Excel文件daoru
  • David_lou
  • David_lou
  • 2014年11月08日 18:32
  • 1090

解决struts1上传超大文件引起的宕机问题

朋友最近发现,他的服务器在处理文件上传的相关请求时非常容易发生宕机问题,尤其是在进行多文件批量上传、超大文件(几百MB或上GB)上传时极其容易发生。日志信息显示,引发的异常为致命异常java.lang...
  • xiaohanshenchu
  • xiaohanshenchu
  • 2014年09月15日 13:06
  • 790

struts1多文件上传、下载实例

实例: 第一步导入包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2...
  • gtlishujie
  • gtlishujie
  • 2016年08月29日 14:56
  • 1110

Struts1实现文件上传

引言          学习了框架之后,就要进行小例子的应用了……下面小编就敲了一个文件上传的例子,还请大家指教! 主要步骤 1、创建用于文件上传的jsp相关页面 1)index.jsp ...
  • u013031565
  • u013031565
  • 2017年01月16日 14:07
  • 303

Struts1——文件上传

在struts1中,框架本身引入commons-fileupload:        只需几行代码+配置,便可以完成文件的上传。     首先使我们form表单里面的配置:  然后在ActionFor...
  • lhc2207221755
  • lhc2207221755
  • 2015年12月15日 18:38
  • 1497

struts1 实现 文件上传

今天帮师兄加了一个文件上传的功能,在网上找了找资料,struts1对文件上传支持的很好,用起来很方便,其中利用可以很方便的上传文件 的属性为org.apache.struts.upload.Form...
  • best198706
  • best198706
  • 2013年04月02日 15:19
  • 675
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts1 上传文件
举报原因:
原因补充:

(最多只允许输入30个字)