赵钟秋ID:AutumnHealth
17162次访问,排名6719(-4)好友3人,关注者7
AutumnHealth的文章
原创 26 篇
翻译 0 篇
转载 15 篇
评论 13 篇
身体健康的公告
<< 天气预报>>
最近评论
ibsrvk:wow power leveling
日月雨林:如果早看到你的文章就好了,也不用去到处找方法了
真的很感谢您!
lc4ever:请博主帮小弟解决一下:
如您所说,我也是使用这种方法的
response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("UTF-8"),"iso8859-1")); //采用ISO8859-1编码

这个在firefox2.0上……
我也赞:楼主我也跟着赞一个,但是你那个主题曲我下不了,我一直在找啊
yxf:麻烦+有不稳定因素隐藏在里面
文章分类
收藏
    相册
    南下深圳
    年轻
    视频照片
    珍惜
    GNU/Linux
    Linux桌面中文网
    Ubuntu中文论坛
    Java站点
    J2ME开发网
    Java中文博览
    Java开源大全
    Java视线
    JR - 汇聚技术精英,增进技术交流
    Netbeans中文社区(RSS)
    Sun 中国技术社区
    朋友的Blog
    allentranks的专栏(RSS)
    Ammi的Blog(RSS)
    AutumnHealth's blog--my blog for GNU/Linux(RSS)
    丹丹的blog
    金狗玖度(RSS)
    长空阁(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 JSP连接远程FTP服务器,生成缩略图收藏

    新一篇: [转贴]jsp下载文件的实现方法 | 旧一篇: Ubuntu 7.10 Gutsy Gibbon发布倒计时

    需求是这样的:
    图片文件放在远程FTP服务器上,图片是用作宣传的,很大。用户只能访问web服务器,用户需要在web上先预览图片的缩略图,然后点击链接下载该图片。

    目前有两种解决方案
    第一种方案,通过web服务器的jsp去连接ftp客户端,读取到远程FTP服务器上的图片,生成缩略图,返回到页面,然后用户选择想下载的图片,再一次通过jsp连接ftp下载到客户端。
    示例代码如下:
    <%-- 
        Document   : img
        Created on : 
    2007-10-300:02:28
        Author     : autumn
    --%>

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@ page import="java.awt.image.BufferedImage" %>
    <%@ page import="java.awt.*" %>
    <%@ page import="com.sun.image.codec.jpeg.*" %>
    <%@ page import="sun.net.ftp.FtpClient" %>
    <%@ page import="sun.net.TelnetInputStream" %>
    <%@ page import="java.io.ByteArrayOutputStream" %>
    <%
     
    String path 
    = request.getParameter("path");

    try {
      response.flushBuffer();
      out.clear();
      out 
    = pageContext.pushBody();
     
      out.clear();
      response.setContentType(
    "image/jpg");
      response.addHeader(
    "pragma","NO-cache");
      response.addHeader(
    "Cache-Control","no-cache");
      response.addDateHeader(
    "Expries",0);
      
      
    /*连接ftp服务器*/
      FtpClient fc 
    = new FtpClient();
      fc.openServer(
    "127.0.0.1");                 //连接ftp服务器,参数为ftp服务器地址
      fc.login("test""test");                   //登录ftp服务器,参数为ftp用户名密码
      fc.binary();                                //转成二进制模式
      TelnetInputStream bis = fc.get(path);      //获取文件,返回输入流
     
      BufferedImage image 
    = javax.imageio.ImageIO.read(bis);
      bis.close();                                
    //关闭输入流
      fc.closeServer();                           //关闭服务器连接
      /*生成缩略图*/
      
    float tag_w=80;
      
    float tag_h=60;
      
    int old_w=image.getWidth(null);        //得到源图宽度
      int old_h=image.getHeight(null);       //得到源图高度
      int new_w=0;                            //缩略图的宽度
      int new_h=0;                            //缩略图的高度
     
      
    float tempdouble;
      
    if(old_w>old_h){
        tempdouble
    =old_w/tag_w;
      }
    else{
        tempdouble
    =old_h/tag_h;
      }

      new_w
    =Math.round(old_w/tempdouble);  //计算缩略图高度
      new_h=Math.round(old_h/tempdouble);  //计算缩略图宽度
     
      BufferedImage tag 
    = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
      tag.getGraphics().drawImage(image,
    0,0,new_w,new_h,null);       //绘制缩小后的图
     
      ServletOutputStream outStream 
    = response.getOutputStream();
      JPEGImageEncoder encoder 
    =JPEGCodec.createJPEGEncoder(outStream);
      encoder.encode(tag);
      outStream.close();
      response.reset();
    }
     catch (Exception ex) {
     
    //异常处理
    }

    %>

    <%-- 
        Document   : main
        Created 
    on : 2007-10-300:02:11
        Author     : autumn
    --
    %>

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd"
    >

    <html>
        
    <head>
            
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            
    <title>JSP Page</title>
        
    </head>
        
    <body>
            
    <h3>FTP img tset</h3>
            
    <img src="img.jsp?path=/2.jpg"/>
        
    </body>
    </html>

    上例只实现从远程获得图片生成缩略图返回,没有实现远程下载图片,不过原理一样。
    这个方案有一个缺点,就是生成缩略图前,得从ftp服务器读取大图,速度比较慢。

    第二种解决方案是在远程ftp服务器架设一个web server,两个服务器共享文件目录,把生成缩略图的工作放在远程,而传回来的只是缩略图,所以速度会快不少。
    目前打算采用第二种方案 : )

    发表于 @ 2007年10月31日 23:48:00|评论(loading...)|编辑

    新一篇: [转贴]jsp下载文件的实现方法 | 旧一篇: Ubuntu 7.10 Gutsy Gibbon发布倒计时

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 身体健康