`
小妞咕嘟
  • 浏览: 9764 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

没使用UploadFile实现文件下载Demo源码

阅读更多
1.首先本小姐很久没写代码,很多东西其实都忘的差不多,特别是Html的一些标签和js更是忘得一塌糊涂,由于这次我们公司要做个上传下载的web服务器,改服务器是跟android客户端提供数据的,也就是说这个ftpweb下载服务器主要是android端提供文件下载等服务的,但是我用jsp页面做了个demo,原理差不多,只是跟android端传递的不是下载文件数据,而是包含下载路径的下载文件信息,以下是我写的小demo;




2.下面是Jsp页面代码:
<script type="text/javascript">
           
          
            function  xiaozhukuaipaoOnclick(){
           
            var filename  =  "小猪快跑13.01.apk";
            document.getElementById("form").action="xiazai?fileName="+encodeURI(encodeURI(filename));
            document.getElementById("form").submit();
           
            }
           
            function  xiaoyazhiOnclick(){
           
            var filename  = "小鸭子.APK" ;
            document.getElementById("form").action="xiazai?fileName="+encodeURI(encodeURI(filename));
            document.getElementById("form").submit();
           // document.forms[0].action  + =("&fileName="+filename) ;
           // document.forms[0].submit();
            }
           
            function GoLiveOnclick(){
            var filename  ="GoLive TV.11.02.apk";
            // alert(document.forms[0].action);
           // document.forms[0].action+("&fileName="+filename) ;
            //document.forms[0].action="xiazai?fileName="+filename" ;
           // document.forms[0].submit(); 
           document.getElementById("form").action="xiazai?fileName="+encodeURI(encodeURI(filename));
           document.getElementById("form").submit();
            }
           
  </script>
  
   <form   id="form" enctype="multipart/form-data"  method="post">
   <li><span>小猪快跑游戏.APK </span> 
   <input  type="button"  value="下载"  name="xiaozhukuaipao"  id="xiaozhukuaipao"  onclick="xiaozhukuaipaoOnclick()"> </li>
 
   <li><span>小鸭子.APK </span>       
   <input  type="button"  value="下载"  name="xiaoyazhi"  id="xiaoyazhi"     onclick="xiaoyazhiOnclick()"> </li>
   
  <li><span> GoLive TV.11.02.apk </span>       
   <input  type="button"  value="下载"  name="GoLive"  id="GoLive"     onclick="GoLiveOnclick()"> </li>
   
   </form>




3.下面是我的servlet类:



package download.control;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;



import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class DownLoadControlServlet extends  HttpServlet  {

private static final long  serialVersionUID = 1l;
private  DownLoadControlServlet  downLoadControlServlet  ;

  

public void init() throws ServletException{


      System.out.println("DownLoadControlServlet   init()��ʼ��..");
}

public void init(ServletConfig config) throws ServletException{
   super.init(config);
 
       System.out.println("DownLoadControlServlet Config()");
}
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException{
    System.out.println(req+"---"+resp);
  this.doPost(req, resp)    ;     
      System.out.println("DownLoadControlServlet doGet()");
}

public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException{
  System.out.println(req+"---"+resp);
  HttpServletResponse   response = resp;
      HttpServletRequest   request = req;
  
      System.out.println("DownLoadControlServlet doGet()");
    
     // String   fileName =  req.getParameter("fileName");
    
     // PrintWriter  printWriter = new  PrintWriter() ;
      /*if(fileName == null || fileName == ""){
     
      System.out.print("用户请求下载的文件不存在");
     
     
      }
      */
      //将文件流写入浏览器

      OutputStream outputStream = resp.getOutputStream();
     
      ServletContext servletContext=req.getSession().getServletContext();
   
      String fileName  =req.getParameter("fileName")  ;
      File file = new File(servletContext.getRealPath("/WEB-INF/downLoad/"), fileName);
    //  File  file =new File("D:/download/res/" , "fileName");
      System.out.println(file.getPath()+"-------");
      resp.setHeader("Content-disposition","attachment; filename="+fileName); 
     resp.setContentType("application/vnd.ms-excel;charset=GBK");
     resp.setBufferSize(1024);
     resp.setHeader("Cache-Control","no-cache"); //HTTP 1.1
     resp.setHeader("Pragma","no-cache"); //HTTP 1.0
      resp.setDateHeader ("Expires", 0); //prevents caching at the proxy server
     
     
      if (file.exists()) {
       
        FileInputStream fileInputStream = new FileInputStream(file);
      
        byte[] b = new byte[1024];
        int length;
        while ((length = fileInputStream.read(b)) != -1) {
            outputStream.write(b, 0, length);
            outputStream.flush();
        }
    }
    else {
        System.out.println("下载的文件不存在"); 
    }
   
  
}
public void destroy(){

System.out.println("Servlet destroy()....");

}




}




4.从代码中可以看出我的下载文件是放在webInfo下面的downLoad文件下面,


5.在web.xml配置servlet应该都会,但是还是写上吧


<servlet>
<servlet-name>DownLoadControlServlet</servlet-name>
<servlet-class>download.control.DownLoadControlServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DownLoadControlServlet</servlet-name>
<url-pattern>/xiazai</url-pattern>
</servlet-mapping>


0
2
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    基于ThinkPHP5图书管理系统demo源码 DemoLibraryBasedThinkPHP5.rar

    基于ThinkPHP5图书管理系统demo源码 一、源码描述 程序后台技术框架:ThinkPHP5(一个MVC框架),后台界面采用EasyUI框架,前台界面采用Bootstrap框架,用户浏览器和服务器全程几乎采用jquery异步加载技术! 二、...

    C#_WinForm_文件上传下载

    ### C# WinForm中的文件上传与下载实现 在C# WinForm应用程序中,实现文件的上传和下载功能是非常常见的需求之一。本文将详细介绍如何利用C#语言和WinForm框架来实现这一功能,并深入探讨其中涉及的关键技术和代码...

    xfire webservice 上传下载源码

    在"xfire webservice 上传下载源码"这个主题中,我们将深入探讨如何使用XFire来实现文件的上传和下载功能,以及相关的核心概念和技术细节。 **一、XFire简介** XFire是Apache CXF的前身,其设计目标是简化Web服务的...

    利用WCF实现文件上传源码

    在本示例中,我们将深入探讨如何利用WCF实现文件上传功能。 文件上传是一种常见的需求,特别是在Web应用程序中。传统的ASP.NET或其他Web框架可能通过表单提交和HTTP POST来处理文件上传,而WCF提供了另一种更可控、...

    淘宝上价值380元的网站源代码打包 上传下载篇

    [上传下载]带进度条大文件上传源码(单文件多文件都可以传)_uploaddemo.rar [上传下载]手机电影下载系统源码_56wam.rar [上传下载]桃源网络硬盘.Net 5.4_webdisk.rar [上传下载]桃源网络硬盘.Net v4.6_webdisk.rar ...

    AspUpload 组件上传 安装方法及其Demo(全)

    AspUpload组件是一款广泛应用于ASP(Active Server Pages)开发中的文件上传工具,它极大地简化了在Web应用中处理用户上传文件的过程。这个组件允许开发者在服务器端接收并处理多个文件的上传请求,提供了丰富的功能...

    FastDFS SpringBoot 客户端 Demo搭建,支持文件上传下载

    本教程将介绍如何使用SpringBoot集成FastDFS客户端,实现文件的上传与下载功能。 首先,我们需要在项目中添加FastDFS的Java客户端依赖。FastDFS官方提供了一个名为`fastdfs-client-java`的客户端库,可以从GitHub或...

    php+ajax实现带进度条的上传图片功能【附demo源码下载】

    在本文中,我们将深入探讨如何使用PHP和AJAX技术实现一个带有进度条的图片上传功能。这个功能允许用户在上传大文件时实时看到文件传输的进度,提供了更好的用户...提供的源码下载可以帮助你更好地理解并实现这一功能。

    ESFramework之FTP_Demo v1.0

    在.NET中,可使用FtpFileSystem对象来封装对本地文件系统的访问,实现如GetFiles、UploadFile、DownloadFile等方法。 4. FTP命令处理:FTP协议定义了一系列命令,如USER、PASS、CWD、LIST、STOR、RETR等。...

    Spire.Cloud.Excel_PHP源码及APIDemo.zip

    源码中可能包含了如上传文件、下载文件、修改工作表内容、合并单元格、添加图表等操作的示例。 **API Demo** 部分是预编写好的示例代码,用于展示Spire.Cloud API的基本用法。开发者可以通过运行这些示例,快速上手...

    flash上传文件,flex上传,无刷新上传,php上传,含源码

    本文将深入探讨“flash上传文件,flex上传,无刷新上传,php上传”这一主题,并结合提供的源码文件,分析实现这些功能的关键技术和步骤。 首先,让我们了解一下“Flash上传文件”。在早期的Web开发中,Flash由于其强大...

    驰骋工作流引擎源码

    源码有详细使用文档,可以下载查看。 用户名是:51aspx 密码是 51aspx 管理员用户名是:admin 密码是 pub 默认添加的用户的密码均是pub 特此声明,网站版权归开发公司所有,此源码仅供学习交流之用,如有违者...

    cropper-demo.rar

    下载并安装后,你可以通过这个工具创建一个新的项目,将“cropper-demo”文件夹导入作为项目源码。 2. **cropper组件**:在小程序中,`cropper`组件是用于图片裁剪的关键。它提供了一种在界面上选择并裁剪图片的...

    双鱼林基于ThinkPHP5图书管理系统demo v1.0.rar

    后台管理员登录采用了验证码,查询的结果记录都可以导出到Excel,对其中的图片上传和文件上传专门写了2个方法uploadPhoto和uploadFile放到了基类中,所有控制器类继承基类,实现了代码的精简优化! 开发软件: ...

    mes上传基于C#上传web service示例源码

    在这个“mes上传基于C#上传web service示例源码”中,我们将深入探讨如何使用C#与Web服务进行交互,实现文件上传功能。 首先,Web服务通常是基于SOAP(Simple Object Access Protocol)或REST(Representational ...

    FastDFS安装文件及java代码示例

    这个Demo中可能包含了FastDFS的Java SDK,用于文件上传和下载操作。 1. **引入依赖**:将FastDFS的Java客户端库加入到项目类路径,如果是Maven项目,可以在pom.xml中添加依赖。 2. **初始化连接**:创建FastDFS的...

    多图片上传和取消上传(基于框架)

    关于“diyUpload”这个文件,可能包含了一个自定义上传组件的实现,比如使用Vue或React等前端框架编写。在分析这个组件时,我们需要注意其如何处理文件选择、状态管理、异步上传和取消操作等方面。 总之,实现多...

    vb.net 的FTP上传源码

    `Demo`可能是一个示例项目或目录,其中可能有使用FTPclient库进行FTP上传的代码示例。而`FTPclient`可能是自定义的FTP客户端类库,包含实现FTP上传功能的类和方法。 综上所述,VB.NET中的FTP上传涉及到网络编程、...

    thinkphp小程序商城

    除了源码的修改以上参数,在微信公众平台小程序后台,还要在服务器域名里添加合法域名,request合法域名、socket合法域名、uploadFile合法域名、downloadFile合法域名都配置好就可以了。

    clouddoc:七牛云demo大赛作品

    例如,使用`uploadFile`方法上传文件,`downloadFile`方法下载文件,`transform`方法对文件进行处理,如转换格式或调整大小。 此外,为了提升用户体验,"clouddoc"可能还采用了现代前端框架,如React或Vue,来实现...

Global site tag (gtag.js) - Google Analytics