<action name="sdkDownload" class="com.curiousby.sdkDownload"><!-- result的Type必须为stream --><result name="success"  type="stream"><param name="contentType">application/octet-stream;charset=ISO-8859-1</param><param name="contentDisposition">attachment;fileName="${fileName}"</param><param name="inputName">downloadFile</param></result></action>
public class sdkDownload extends ActionSupport {private static final long serialVersionUID = -3000992581173343335L;private static Logger logger = Logger.getLogger(sdkDownload.class);private String fileName;private String realPath;/** @getFileName 此方法对应的是struts.xml文件中的: <param* name="contentDisposition">attachment;filename="${fileName}"</param>* 这个属性设置的是下载工具下载文件时显示的文件名, 要想正确的显示中文文件名,我们需要对fileName再次编码* 否则中文名文件将出现乱码,或无法下载的情况*/public String getFileName() throws UnsupportedEncodingException {fileName = new String(fileName.getBytes(), "ISO-8859-1");return fileName;}public void setFileName() {String fname = ServletActionContext.getRequest().getParameter("fileName");try {fname = new String(fname.getBytes("ISO-8859-1"), "UTF-8");} catch (Exception e) {e.printStackTrace();}this.fileName = fname;}public InputStream getDownloadFile() {this.setFileName();String name = ServletActionContext.getRequest().getParameter("name");try {name = new String(name.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}realPath = "/"+"download"+"/" + "/" + name;return ServletActionContext.getServletContext().getResourceAsStream(realPath);}//sdk的下载目前不涉及到控制权限@Overridepublic String execute() throws Exception {logger.info("excute");//get fileName fisrtthis.setFileName();String name = ServletActionContext.getRequest().getParameter("name");try {name = new String(name.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}realPath = "/"+"download"+"/" + "/" + name;// 文件下载目录路径  String downloadDir = ServletActionContext.getServletContext().getRealPath("/download");  // 文件下载路径 String downloadFile = ServletActionContext.getServletContext().getRealPath(realPath);java.io.File file = new java.io.File(downloadFile);  downloadFile = file.getCanonicalPath();// 真实文件路径,去掉里面的..等信息 // 发现企图下载不在 /download 下的文件, 就显示空内容 if(!downloadFile.startsWith(downloadDir)){  //放置修改路径下载web.xml文件//return  errorreturn null; }return SUCCESS;}
}
 <a class="versionTitleA" href="<%=request.getContextPath()%>/user/sdkDownload?name=air_ios_sdk.zip&fileName=air_ios_sdk.zip">iOS 版</a>

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。


 
 
 谢谢您的赞助,我会做的更好!

下载 sdk struts java相关推荐

  1. ArcGIS API for JavaScript 各个版本的SDK下载和发布 ,ArcGIS Runtime SDK for Android、ArcGIS Runtime SDK for Java等

    ArcGIS API for JS 官网地址:https://developers.arcgis.com/javascript/ ArcGIS API for JavaScript 各个版本的SDK下 ...

  2. 安卓开发04:OpenCV SDK下载及Android Java环境搭建

    一.官方网站下载sdk:https://opencv.org 1.悬停Library后点击Releases 2.点击Android,打开网页后会自动下载 打开后得到以下内容 二.打开Android新建 ...

  3. eclipse字体大小设置_Java 设置Excel单元格格式—基于Spire.Cloud.SDK for Java

    本文介绍使用Spire.Cloud.SDK for Java来设置Excel单元格格式,包括字体.字号.单元格背景.字体下滑线.字体加粗.字体倾斜.字体颜色.单元格对齐方式.单元格边框等.具体可参照以 ...

  4. java实现for文件删除_Java 添加、删除、替换、格式化Word中的文本的步骤详解(基于Spire.Cloud.SDK for Java)...

    Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...

  5. 支付宝支付之“单笔转账到支付宝账户接口”的调用(生成签名、上传应用公钥、下载SDK、接口调用、报错自动排查、查看错误码)

    支付宝接口调用 "单笔转账到支付宝账户"的接口调用,一般涉及到下面几个知识点 1.生成签名 在使用支付宝接口的时候,需要使用支付宝的签名,这里需要使用支付宝的RSA生成工具. 关于 ...

  6. Java SDK和Java JDK的区别

    sdk.jdk.jre的区别 一.JDK与jre 简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境.SDK是Software Development Kit 一般指软件开 ...

  7. java 朗读_java下载安装 用Java实现简单的语音朗读

    实验三 利用微软的speech sdk或Java speech api(jsapi)等实现简单的语音(中英文均可)朗读,最好能够实现简单的识别(6学时) 基本要求: 实现简单的语音朗读 bonus: ...

  8. java pdf添加图片水印图片_Java 在PDF中添加文本水印、图片水印(基于Spire.Cloud.SDK for Java)...

    Spire.Cloud.SDK for Java提供了接口pdfWartermarkApi可用于添加文本水印addTextWartermark()和图片水印addImageWartermark()到P ...

  9. aws搭建java项目_开发人员指南 - AWS SDK for Java 1.x - 适用于 Java 的 AWS 开发工具包...

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 开发人员指南 - AWS SDK for Java 1.x 适用于 Java 的 AWS 开发工具包为 Amazon We ...

最新文章

  1. 【廖雪峰python入门笔记】变量
  2. C语言写的俄罗斯方块
  3. php import用法,JavaScript中import怎么使用?
  4. JavaWeb-SpringBoot(抖音)_二、服务器间通讯
  5. 深入LINQ | 揭开IQueryable的面纱
  6. 产品经理之市场需求分析详解(非原创)
  7. image控件的 PostBackUrl绑定Eval
  8. 面试必问:如何实现Redis分布式锁
  9. 原生js 封装ajax
  10. 禁止文本框输入空格和回车
  11. C# 短视频 无水印解析 原视频下载(超详细)
  12. html如何保存离线使用,如何完整保存离线网页
  13. sublime 格式化Json
  14. 酒店管理系统java代码_基于Spring开发的Java酒店管理系统 源码下载
  15. twitter授权登录 php,PHP版实现Twitter第三方登录的成功案例
  16. 读书笔记:汇编语言 第三版 王爽 清华出版社 章六 章七 章八 章九 章十
  17. Unity 利用HDRP《异教徒:数字人》中的眼球遮蔽方法,计算眼眶投影
  18. 对数字签名的攻击概述
  19. CSS 笔记(十二):预处理器 —— Less
  20. 小甲鱼python第二十讲(内嵌函数和闭包)

热门文章

  1. 2018.01.01(数字三角形,最长上升子序列等)
  2. linux设置history历史记录
  3. ELK日志分析系统(转)
  4. 动态代理3之代理工厂实现
  5. C语言字符串函数大全
  6. JAVA正则表达式介绍和使用
  7. Javascript模块模式学习分享
  8. 2012 不宜进入的三个技术点(下)
  9. javaweb学习6——自定义标签
  10. linux环境部署常用命令