打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Struts第3天补充

 

说我的博客文字太多,没办法就分两篇发了,都是第3的知识点,前面讲了LookupDispatchAction,这里讲解文件的上传和下载!

文件的上传

先是文件的上传吧,因为有了上传才会有下载,HOHO!

首先,还是action的书写,示例:

  1. //文件上传代码  
  2. public class FileUpLoadAction extends Action{  
  3.     public ActionForward execute(ActionMapping mapping, ActionForm form,  
  4.             HttpServletRequest request, HttpServletResponse response)  
  5.             throws Exception  
  6.         FilesForm ffs (FilesForm)form; //获得formbean对象  
  7.         FormFile ff ffs.getMyfile(); //获得到FormFile对象  
  8.         InputStream is ff.getInputStream();//获得一个写入流  
  9.         OutputStream os new FileOutputStream("c:/"+new SimpleDateFormat("yyyy-MM-dd HH.mm.ss").format(new Date())+".png"); //以上传时间为名字,避免文件名的重复,并获得一个输出流  
  10.         byte [] by new byte[is.available()];//定义一个byte数组用了装文件数据  
  11.         int len 0  
  12.         while((len=is.read(by))!= -1){//如果小于-1就是读完了  
  13.             os.write(by,0,len); //从0开始,读到最后结束  
  14.          
  15.         is.close();  
  16.         os.flush();  
  17.         os.close();  
  18.         return mapping.findForward("success");  
  19.     

下来是FormBean的书写:

  1. //FormBean的书写,其中的myfile跟jsp页面上的property值对应!  
  2. public class FilesForm extends ActionForm  
  3.     private FormFile myfile;   
  4.     public FormFile getMyfile()  
  5.         return myfile;  
  6.       
  7.     public void setMyfile(FormFile myfile)  
  8.         this.myfile myfile;  
  9.      
  10.  

接着是配置文件的配置:

  1.  <!--FormBean的配置-->  
  2.  <form-beans>  
  3.     <form-bean name="files" type="com.lovo.form.FilesForm"></form-bean>  
  4.  </form-beans>  
  5.   
  6. <!--Action的配置-->  
  7. <action path="/file" type="com.lovo.action.FileUpLoadAction" name="files" validate="false">  
  8.         <forward name="success" path="/success.jsp"></forward>  
  9. </action>  

这里的配置跟一个普通的action和formbean的配置没有什么区别!

然后是jsp页面的书写:

<html:form action="file.do" method="post" enctype="multipart/form-data">  

  <html:file property="myfile"></html:file>  

  <html:submit value="上传"></html:submit>  

</html:form> 

提示:form的enctype="multipart/form-data"必须配置,并且,Mehtod必须是post类型

<html:file property="myfile"></html:file> 的property的值为formbean里面的属性名!

文件的下载

文件的下载在Struts中提供了一个内置的实现类也就是DownloadAction这个类,下面我们来书写一个Action来继承这个类代码如下:

  1. //文件的下载 继承DownloadAction并实现getStreamInfo方法  
  2. public class FileDownAction extends DownloadAction   
  3.     protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,  
  4.             HttpServletRequest request, HttpServletResponse response)  
  5.             throws Exception  
  6.         response.setContentType("application/x-download");//设置response的meta的类型为下载类型,这样浏览器才会弹出保持对话框  
  7.         response.setHeader("Content-Disposition""attachment;filename=" "mm.png");//设置响应头,第一个参数为设置文件的默认名,第二个参数是目的是用户下载(保存文件)给出一个文件的默认的具体名字  
  8.         StreamInfo si new FileStreamInfo("image/png",new File("c:/mm.png"));//因为StreamInfo 是一个接口,那么来创建它的实现类FileStreamInfo,第一个参数是文件类型,第二个参数是文件在服务器上的的保持位置,这里最好是具体的文件位置
  9.         return si;//返回StreamInfo   
  10.           
  11.  

action的配置就较为简单了,也不需要formbean的参与代码如下:

<action path="/down" type="com.lovo.action.FileDownAction" ></action>  

这里Action的配置就不做讲解了!

最后是JSP的书写,也很简单:

<a href="down.do">下载</a> 

这样就可以完成下载了!

好了,今天的知识点先总结到此!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Struts开发指南之工作流程
struts文件上传- -
Struts1.x系列教程(8):上传单个文件
用struts向数据库中储存图片
SSH开发网上商店过程中遇到的16个问题
BlogJava - piliskys - struts的轻量架构(新手有用)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服