JavaEE基础 Struts2实现下载各种文件
安彩凤 2018-04-04 来源 : 阅读 1186 评论 0

摘要:本篇JavaEE基础教程将为大家讲解JavaEE基础编程的知识点,看完这篇文章会让你对JavaEE基础编程的知识点有更加清晰的理解和运用。

本篇JavaEE基础教程将为大家讲解JavaEE基础编程的知识点,看完这篇文章会让你对JavaEE基础编程的知识点有更加清晰的理解和运用。


struts2实现下载各种文件

1、struts.xml


1.      <?xml version="1.0" encoding="UTF-8" ?>  
2.      <!DOCTYPE struts PUBLIC  
3.          "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
4.          "//struts.apache.org/dtds/struts-2.3.dtd">  
5.        
6.      <struts>  
7.          <constant name="struts.action.extension" value="action" />    
8.          <constant name="struts.enable.DynamicMethodInvocation" value="true" />  
9.          <constant name="struts.i18n.encoding" value="utf-8"/>  
10.      <constant name="struts.custom.i18n.resources" value="message_zh_CN"/>  
11.        
12.      <package name="hys.app.upload" extends="struts-default" namespace="/hys/app/upload">  
13.          <action name="download_*" class="com.hys.app.upload.action.FileDownload" method="{1}">  
14.              <result name="success" type="stream">  
15.                  <!--指定文件下载类型 application/octet-stream默认值可以下载所有类型 -->  
16.                  <param name="contentType">application/octet-stream;</param>  
17.                  <!-- contentDisposition是文件下载的处理方式,包括内联(inline)和附件(attachment), 默认是inline -->  
18.                  <!--使用附件时这样配置:attachment;filename="文件名" -->  
19.                  <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>  
20.                  <!--由getInputStream()方法获得inputStream -->  
21.                  <param name="inputName">inputStream</param>  
22.                  <!-- 指定下载文件的缓存大小1024*4 -->  
23.                  <param name="bufferSize">4096</param>  
24.              </result>  
25.          </action>  
26.      </package>  
27.        
28.  </struts>

2、FileDownload.java


1.      package com.hys.app.upload.action;  
2.      import java.io.FileInputStream;  
3.      import java.io.InputStream;  
4.      import java.io.UnsupportedEncodingException;  
5.      import java.net.URLEncoder;  
6.        
7.      public class FileDownload {  
8.        
9.          private String realpath;// 文件来源地址  
10.        
11.      private String savefilename;// 源文件名加后缀  
12.    
13.      private String filename;// 下载文件名加后缀  
14.        
15.      //下载文件流  
16.      public InputStream getInputStream() throws Exception {    
17.          FileInputStream fileinput = new FileInputStream(realpath + savefilename);         
18.          return fileinput;  
19.      }  
20.    
21.      //访问下载路径  
22.      public String getUserDoc() throws Exception {  
23.          //文件来源地址  
24.          realpath="D:\\upload\\";  
25.          //源文件名  
26.          savefilename = "usermanual.doc";  
27.          //下载文件名  
28.          filename = "用户操作手册.doc";  
29.                
30.          return "success";  
31.      }  
32.    
33.      //提供转换编码后的供下载用的文件名(防止中文乱码)  
34.      public String getDownloadFileName() {  
35.          String downFileName = filename;  
36.          try {  
37.              downFileName = new String(downFileName.getBytes("UTF-8"),"ISO8859-1"); // 获取中文url参数,转换一下编码;  
38.              downFileName = URLEncoder.encode(downFileName, "ISO8859-1");// FOR IE URL 重新编码一次  
39.          } catch (UnsupportedEncodingException e) {  
40.              e.printStackTrace();  
41.          }         
42.          return downFileName;  
43.      }  
44.    
45.      public String getFilename() {  
46.          return filename;  
47.      }  
48.    
49.      public void setFilename(String filename) {  
50.          this.filename = filename;  
51.      }  
52.    
53.  }

3、jsp

1.      <%@ page language="java" contentType="text/html; charset=UTF-8"  
2.          pageEncoding="UTF-8"%>  
3.      <%String path = request.getContextPath();%>  
4.      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "//www.w3.org/TR/html4/loose.dtd">  
5.      <html>  
6.      <head>  
7.      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
8.      <title>Insert title here</title>  
9.      </head>  
10.  <body>  
11.  <span style="color:#006965;">使用须知:</span>  
12.      <a href="<%=path %>/hys/app/upload/download_getUserDoc.action">下载用户手册</a>  
13.  </body>  
14.  </html>


以上,关于Java的全部内容讲解完毕啦,欢迎大家继续关注!更多关于Java的干货请关注职坐标Java频道!希望这篇Java编程文章可以帮助到你。总之,同学们,你想要的职坐标Java频道都能找到!

本文由职坐标整理并发布,希望对同学们学习Java的知识有所帮助。了解更多详情请关注职坐标Java频道!


本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长组织调研,人长盘点

  • 13
    文章
  • 4953
    人气
  • 83%
    受欢迎度

已有12人表明态度,83%喜欢该老师!

进入TA的空间
求职秘籍 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
Web前端基础 正则表达式大全
经验技巧 0% 的用户喜欢
JavaEE进阶 基于Servlet3.0的文件上传
经验技巧 0% 的用户喜欢
JavaEE进阶 关于ORACLE数据库的导入导出
经验技巧 0% 的用户喜欢
JavaEE进阶 WebService的相关概念
经验技巧 0% 的用户喜欢
JavaEE进阶 Web Service概念
经验技巧 0% 的用户喜欢
其他海同师资 更多>>
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
孔庆琦
孔庆琦 联系TA
对MVC模式和三层架构有深入的研究
周鸣君
周鸣君 联系TA
擅长Hadoop/Spark大数据技术
范佺菁
范佺菁 联系TA
擅长Java语言,只有合理的安排和管理时间你才能做得更多,行得更远!
金延鑫
金延鑫 联系TA
擅长与学生或家长及时有效沟通
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程