惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
H
Help Net Security
Jina AI
Jina AI
V
V2EX
G
Google Developers Blog
B
Blog
GbyAI
GbyAI
U
Unit 42
爱范儿
爱范儿
腾讯CDC
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
小众软件
小众软件
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
博客园 - 聂微东
The Cloudflare Blog
I
InfoQ
Microsoft Azure Blog
Microsoft Azure Blog
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏

博客园 - 轻松逍遥子

Oracle 9i的数据类型 javascript事件查询综合 - 轻松逍遥子 - 博客园 用正则表达式检验是否输入日期时间是有效&&&&&& execCommand指令集 用net命令使局域网文件批量同步更新 无分]遍历表单 - 轻松逍遥子 - 博客园 设计有复杂客户端Script的服务器控件 [WEB开发] 基于XMLHTTP的简单实例 xmlhttp组件获取远程文件并筛选出目标数据 - 轻松逍遥子 - 博客园 XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案 XMLHTTP---介绍(自动抓网页内容) - 轻松逍遥子 - 博客园 Spring与EJB3.0的比较 手把手配置Hibernate环境 运用Jakarta Struts的七大实战心法 struts+spring+hibernate之间的关系与差别(ZT)- - JBuilder2005+JBOSS+Oracle9i环境配置[zt]- - 无限级目录树最优算法的新研究 解决JBuilder在中文系统中光标错位的问题(10.18最新,适合JB2005) 不经过临时文件,直接从BLOB字段,下载数据显示图片! servlet实现从oracle数据库的blob字段中读出文件并显示
关于下载的一点心得!!(如何弹出对话框!)
轻松逍遥子 · 2005-08-16 · via 博客园 - 轻松逍遥子

注:inputStream不能在二个不同的类之间赋予.只能直接得到!!

FTP远程下载的例子:
//设置此项即告诉SERVLET是下载文件,而不是网页或TXT.(可以弹出对话框)
 response.setContentType("APPLICATION/OCTET-STREAM");

//用IntputStream时,就用下面这个.
    ServletOutputStream  outputStream = response.getOutputStream();

//转换下载中文名的问题.
String fPath =new String(Filename.getBytes("GBK"), "ISO8859_1");

//设置下载的文件名与原文件名一样.
 response.setHeader("Content-Disposition",
                           "attachment; filename=\"" +  fPath +
                           "\"");
        System.out.println(refFile.getFilename());

        FTPClient ftpclient=new FTPClient();

//连接FTP服务器
      ftpclient.connection(severurl)

       
        if (refFile != null && (refFile.getFilesize() < 1024 * 1024 * 10)) {
          temRemote=new String(("\\" + refFile.getFilename()).getBytes("gb2312"), "iso-8859-1");
          inputStream = ftpclient.retrieveFileStream(temRemote);
          System.out.println("00001");
        }
        else if (refFile != null && (refFile.getFilesize() > 1024 * 1024 * 10)) {
          temRemote=new String((refFile.getMetaURL() + "\\" +
                                               refFile.getFilename()).getBytes("gb2312"), "iso-8859-1");
          inputStream = ftpclient.retrieveFileStream(temRemote);
        }
        System.out.println("<10M时=" + "\\" + refFile.getFilename());
        System.out.println(">10M时=" + refFile.getMetaURL() + "\\" +
                                               refFile.getFilename());
        int i;
        int chunk = inputStream.available();
        System.out.println("chunk数据长度是=" + chunk);
        //byte数组接受文件的数据
        byte[] buffer = new byte[chunk];
        int length = -1;
        if (inputStream == null) {
          System.out.println("输入流为空!!");
        }
       while((length=inputStream.read(buffer))!=-1){
         System.out.println("length数据长度是=" + length);
         outputStream.write(buffer, 0, length); //读入流,保存在BYTe数组中
       }


        inputStream.close();
        outputStream.flush();
        outputStream.close();

      }