`
knight_black_bob
  • 浏览: 857935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

下载 sdk struts java

阅读更多

 

 

 

 

 

<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 block
			e.printStackTrace();
		}
		realPath = "/"+"download"+"/" + "/" + name;
		return ServletActionContext.getServletContext().getResourceAsStream(realPath);
	}
	

	//sdk的下载目前不涉及到控制权限
	@Override
	public String execute() throws Exception {
		logger.info("excute");
		
		//get fileName fisrt
		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 block
			e.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  error
			return null; 
		}
		return SUCCESS;
	}
}

 

	<a class="versionTitleA" href="<%=request.getContextPath()%>/user/sdkDownload?name=air_ios_sdk.zip&fileName=air_ios_sdk.zip">iOS 版</a>
       							

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

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



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

 

 

分享到:
评论

相关推荐

    arcgis-runtime-sdk-java-100.13.1.zip

    1. 与Java EE框架集成:ArcGIS Runtime可以无缝集成到Spring、Struts等Java EE框架中,构建企业级地理信息系统。 2. 移动应用开发:适用于Android和iOS平台,提供跨平台的开发能力。 总结,ArcGIS Runtime SDK for...

    带进度条的文件上传下载组件(JAVA)

    这个名为“带进度条的文件上传下载组件(JAVA)”的项目,显然聚焦于提供一个用户友好的交互体验,通过显示进度条来增强用户体验,使用户能够清晰地看到文件上传或下载的进度。下面我们将深入探讨这一组件涉及的主要...

    Google App Engine1.3.0 java sdk 第一部分

    1. **安装SDK**:下载并安装appengine-java-sdk-1.3.0_d9soft-part1压缩包,解压后配置环境变量,确保开发工具能够找到SDK路径。 2. **创建项目**:使用SDK提供的命令行工具或集成开发环境(IDE,如Eclipse或...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    3.3.1 下载SDK 3.3.2 安装SDK 3.3.3 设定Path、Classpath和J2EE_HOME 3.4 小结 第四章 Tomcat使用指南 4.1 Tomcat简介 4.1.1 Tomcat的目录结构 4.1.2 Tomcat的配置参数 4.2 建立Tomcat的开发环境 4.2.1 下载Tomcat ...

    在Java的Struts框架下进行web编程的入门教程

    在开始学习Struts2的入门教程之前,确保已经搭建好了开发环境,包括安装了Java SDK和IDE,例如Eclipse。接下来,我们可以创建第一个"Hello World"的Struts2项目。这个项目的目标是收集用户的姓名,并显示带有"Hello ...

    网上书店系统(Struts+Hibernate)(Java EE项目案例)

    开发平台:Eclipse SDK v 3.2.2,下载地址:http://www.eclipse.org/download/index.jsp。 Eclipse插件TomcatPlugins v 3.2.1,下载地址:http://www.eclipse-plugins.info/eclipse/index.jsp。 Eclipse插件...

    使用 Easy Struts for Eclipse 开发 Struts

    6. **安装 J2SE SDK v1.4.2**:从 Sun 的官网下载 Java 2 Standard Edition SDK v1.4.2,并安装到任意目录,设为 `java_home`。 7. **安装 MySQL 数据库**:根据需求从 MySQL 官网下载 MySQL 数据库,并完成安装。 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    3.3.1 下载SDK 3.3.2 安装SDK 3.3.3 设定Path、Classpath和J2EE_HOME 3.4 小结 第四章 Tomcat使用指南 4.1 Tomcat简介 4.1.1 Tomcat的目录结构 4.1.2 Tomcat的配置参数 4.2 建立Tomcat的开发环境 4.2.1 下载Tomcat ...

    struts安装

    - 安装 Struts 需要 Java 开发环境 (JDK),至少是 1.2 版本或更高。 - 你需要一个支持 Servlet 规范 2.2 或更高、JSP 规范 1.1 或更高的Servlet容器,如 Tomcat 3.2 或更高版本。 - JAXP 兼容的 XML 解析器,如 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    3.3.1 下载SDK 3.3.2 安装SDK 3.3.3 设定Path、Classpath和J2EE_HOME 3.4 小结 第四章 Tomcat使用指南 4.1 Tomcat简介 4.1.1 Tomcat的目录结构 4.1.2 Tomcat的配置参数 4.2 建立Tomcat的开发环境 4.2.1 下载Tomcat ...

    Struts2--环境搭建

    同时,还需要添加Servlet和JSP的相关jar,例如servlet-api.jar和jsp-api.jar(这些通常在服务器的lib目录下,或者可以从Java EE SDK中获取)。 6. **配置web.xml**:在WEB-INF下的web.xml文件中,配置Struts2的前端...

    将Struts应用迁移到Struts 2(一)

    这通常包括安装最新版本的Java SDK、Apache Tomcat服务器以及其他必要的开发工具。 5. **备份原始代码**:在正式开始迁移工作之前,务必将原有项目的全部源码做好备份,以便在遇到问题时能够及时恢复到初始状态。 ...

    JavaでHello World Struts編.

    1. **Java実行環境の構築**: J2SE SDKをインストールし、Javaの開発環境をセットアップします。 2. **Tomcatのセットアップ**: ServletコンテナとしてTomcatをインストールし、使用可能にする必要があります。 3. **...

    struts2简单模拟

    1. **环境配置**:首先需要安装Java SDK,然后配置好JDK环境变量。接着,安装Apache Maven或Apache Ant作为构建工具,以及一个IDE,如Eclipse或IntelliJ IDEA。 2. **搭建项目结构**:创建Maven或Ant项目,按照...

    JDK、Struts2、Spring、Hibernate的配置与使用

    如果你打算进行Java EE开发,还需要下载Java EE SDK,如Java EE 7 SDK。安装Java EE SDK时,可以选择解压后启动服务器,例如GlassFish,通过命令行执行asadmin startdomain来启动。 NetBeans是另一个IDE,特别适合...

    java web 主流框架整合开发struts+hibernate例子

    1. **环境搭建**:首先,确保你已经安装了Java SDK、Apache Tomcat服务器、Eclipse或类似的IDE,以及Struts和Hibernate的库。 2. **创建项目结构**:设置好Web项目的基本目录结构,包括src、WEB-INF、lib等,将所需...

    Java2程序设计基础第1章 Java语言入门.ppt

    1. 下载对应操作系统的Java SDK安装包,可以在Oracle官方网站获取最新版本。 2. 执行安装程序,按照向导指示完成安装。 3. 配置环境变量,包括JAVA_HOME、PATH和CLASSPATH。JAVA_HOME指向Java SDK的安装目录,PATH...

    IntelliJ IDEA 2017.3创建第一个Struts2项目

    Struts2是一个强大的、开源的MVC(Model-View-Controller)框架,它简化了Java Web开发,提高了代码的可维护性和可测试性。IntelliJ IDEA作为一款强大的集成开发环境,提供了丰富的功能来支持Struts2的开发。 首先...

    android客户端上传文件源码,struts2服务端接收源码 .zip

    在这个源码示例中,C#标签可能是误标,因为Android客户端和Struts2服务端都是基于Java的。不过,如果涉及到跨平台通信,例如使用C#开发的后台服务,那么可能涉及到如Web API或SignalR等.NET技术。 总结来说,这个...

    flex struts 整合需要的包

    3. **Struts框架**:下载Struts的库文件,如struts-core、struts2-flex-plugin等。这些文件将包含必要的类和API,使Struts能够处理来自Flex的请求。 4. **Flex SDK**:Adobe Flex SDK提供了创建Flex应用程序所需的...

Global site tag (gtag.js) - Google Analytics