`
buerkai
  • 浏览: 169541 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

serverlet实现文件的下载(迅雷、360)

 
阅读更多
在serverlet中实现如下方法
HttpServletResponse v_resp = ((HttpServletResponse) arg1);
String v_serverName = arg0.getParameter("data");
if (v_serverName != null && !v_serverName.trim().isEmpty()) {
if (true)
{
String v_filename = v_serverName;
try {
String v_path = PlatformManager.getInstance().getBaseDir()
+ "report" + File.separator;
File v_f = new File(v_path + v_filename);
if (!v_f.exists() || v_f.isDirectory()) {
writeLog("获取报表不存在:[" + v_filename + "]",
"");
v_resp.setStatus(404);
return;
}
if (v_f.length() < Integer.MAX_VALUE) {
// 迅雷下载的话必须设置这个参数
v_resp.setContentLength((int) v_f.length());
}
v_resp.setContentType("text/html");
v_resp.setHeader("Content-disposition",
"attachment; filename=" + v_filename);

ServletOutputStream v_out = v_resp.getOutputStream();
FileInputStream v_fis = new FileInputStream(v_f);
int v_temp = 0;
byte[] v_buffer = new byte[10240];
ByteArrayOutputStream v_bos = new ByteArrayOutputStream();
while ((v_temp = v_fis.read(v_buffer)) >= 0) {
v_bos.write(v_buffer, 0, v_temp);
}
v_out.write(v_bos.toByteArray());
v_out.flush();
v_resp.flushBuffer();
v_bos.close();
v_fis.close();
return;
} catch (Exception e) {
writeLog("下载文件异常:[" + v_filename + "],MSG="+e.getMessage(), "");
v_resp.setStatus(404);
return ;
}
}
}

//本段代码关键部分:
v_resp.setContentLength((int) v_f.length());要使用迅雷下载需设置文件大小,这个地方由于传入参数是Int,大概支持2G左右的文件下载。使用360可以不设置此参数。

v_resp.setContentType("text/html");设置文件传输类型,这个参数随便写就是了,只要下面这个参数对了,就可以了。
v_resp.setHeader("Content-disposition",
"attachment; filename=" + v_filename);


当使用360下载工具下载的时候,360有点扯蛋,当你在360浏览器输入你要下载的东西时,还没有等到你点击下载,360就会去请求数据,下载到本地内存中,然后你点击下载,360将内存中的数据写到文件中。这个就是360的杰作。
分享到:
评论

相关推荐

    jsp&serverlet api开发文档

    jsp&serverlet api开发文档

    jsp+serverlet+oracle

    在实际的压缩包文件中,"网上订餐1"可能包含了一系列的源代码文件,如JSP页面、Servlet类、数据库配置文件等,它们共同构成了这个订餐系统的骨架。开发者可以通过阅读和分析这些代码,深入理解每个组件的工作原理,...

    java serverlet 小实例

    将这个Servlet部署到Web应用中,我们需要在`web.xml`配置文件中定义Servlet的映射。例如: ```xml &lt;servlet-name&gt;HelloWorld &lt;servlet-class&gt;HelloWorldServlet &lt;servlet-name&gt;HelloWorld &lt;url-pattern&gt;...

    Jsp+Servlet实现文件上传下载 文件上传(一)

    本篇文章将介绍如何使用JSP和Servlet结合Apache的Commons FileUpload组件来实现文件上传的功能。首先,我们需要理解一些关键概念和技术: 1. **JSP (JavaServer Pages)**:JSP是Java Web应用中的视图层技术,它允许...

    Java_tomcat_和serverlet的使用

    Java_tomcat_和serverlet的使用

    Ajax与Serverlet原理及应用.zip

    你可以从“Ajax与Serverlet原理及应用”这个文件开始,逐步学习这两个技术的细节,包括它们如何协同工作以创建高效的Web应用程序。 总的来说,Ajax和Servlet的结合使用能够提供高性能、高度交互的Web界面,极大地...

    serverlet4Json

    serverlet Json commons-beanutils-1.7.0.jar commons-collections-3.2 .jar commons-lang-2.4.jar commons-logging.jar ezmorph-1.0.6.jar json-lib-2.2.3-jdk15.jar xmlns=...

    基于javaweb+jsp+serverlet

    开发者使用WAR(Web Application Archive)文件将整个应用打包,然后上传到服务器进行部署。 9. **安全性** 图书管理系统可能包含敏感信息,如用户账号和密码。因此,系统应采用安全措施,如加密传输(HTTPS)、...

    java serverlet 实例

    Servlet是Java EE(企业版)的一部分,它为开发人员提供了处理客户端请求并返回响应的能力,而无需依赖特定的服务器实现。在本实例中,我们将深入探讨Java Servlet的工作原理、生命周期以及如何通过实际案例来理解和...

    JSP和Serverlet之间的传值方法

    例如,在`web.xml`文件中定义Servlet映射: ```xml &lt;servlet-name&gt;JspServlet1 &lt;servlet-class&gt;com.demo.JspServletDemo&lt;/servlet-class&gt; &lt;servlet-name&gt;JspServlet1 &lt;url-pattern&gt;/JspServlet ``` 根据...

    javaWeb系列 serverlet最简单登陆代码

    JavaWeb系列教程主要关注的是如何在Web应用中处理客户端请求,这里我们重点讲解Servlet的最简单登陆代码实现。Servlet是Java编程语言中的一个接口,它为Java应用程序提供了一个标准的方法来响应HTTP请求,是Java Web...

    jsp第2集视频关于serverlet

    这是我接着上次传的jsp视频,都是来子培训班的东西; 先传2集;有人下载了我传剩下的要不也没什么用

    serverlet相关基础题

    - **Cookie**:存储在客户端浏览器上的小文本文件,用于跟踪用户信息。 #### 8. 设置和获取请求属性 - **设置属性**:使用`setAttribute(String name, Object value)`方法设置名为`name`的属性值。 - **获取属性**...

    JSP serverlet 增删查改

    JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改JSP serverlet 增删查改

    JSP +SERVERLET+JAVABEAN

    **JSP(Java Server Pages)** 是一种动态网页技术,由Sun Microsystems开发,它允许开发者在...这个"模式JSP+Serverlet+JavaBean"的学习文件应该包含了相关的示例代码和教程,可以帮助你更好地理解和应用这些知识。

    javabean+mysql+serverlet 学生成绩管理系统

    【标题】"javabean+mysql+serverlet 学生成绩管理系统"是一个基于J2EE技术栈构建的应用,主要用于管理教育机构的学生成绩。在这样的系统中,JavaBean是核心组件,它作为数据封装的载体,实现了业务逻辑;MySQL是常用...

    在线考试系统jsp+serverlet

    综上所述,"在线考试系统jsp+serverlet"是一个综合运用Java Web技术构建的教育信息化平台,它通过jsp提供友好的用户界面,借助servlet处理复杂的业务逻辑,从而实现教师、学生和管理员的各类功能需求。

    JSP基于serverlet网上书店系统

    它是在集成开发环境MyEclipse中实现的,体现了Java Web开发的基本架构和流程。 【详细知识点】: 1. **JSP(JavaServer Pages)**:JSP是Java技术的一种,用于创建动态网页。开发者可以在HTML代码中嵌入Java代码...

    JSP+Serlet+JNDI实现酒店管理系统

    源码的分析可以帮助我们理解系统的具体实现,例如,JSP文件如何调用Servlet,Servlet如何利用JNDI进行资源查找,以及数据库连接的建立和管理方式。 8. **测试与部署**:由于项目已经在Tomcat6.0下测试运行成功,这...

Global site tag (gtag.js) - Google Analytics