本例子以servlet为主。

下面是大概思路

publicclassFtpServletextendsHttpServlet{
     @Override
     protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)
     throwsIOException, ServletException {
           response.setContentType("text/html");
           StringremotePath= request.getParameter("remotePath");//ftp路径
           StringfileName= request.getParameter("fileName");//ftp上的文件名称
           Stringios=System.getProperty("os.name").toLowerCase();//获取系统名称,根据不同系统创建不同的存储路径
           Stringpath="";
           if(ios.indexOf("windows")>=0){
                path=Configs.get("CommonFile.upfile_windows");
           }else{
                path=Configs.get("CommonFile.upfile_linux");
           }
           Filemk=newFile(path);   
           //如果文件夹不存在则创建   
           if  (!mk.exists()  && !mk.isDirectory())     
           {      
                mk.mkdir();   
           }
           //远程连接ftp并下载图片到服务器    
           FtpUtil.downFile("10.24.10.36", 21, "fy4","fy4",remotePath,fileName,path);
           //读取文件
           Filefile= new File(path+ fileName);
           try{
                FileInputStreamis;
                is= new FileInputStream(file);
                ServletOutputStreamos= response.getOutputStream();
                BufferedOutputStreambos= new BufferedOutputStream(os);
                response.setHeader("Content-Disposition","attachment; filename=\""+ fileName + "\"");
                byte[]len= new byte[1024*2];
                intread= 0;
                while((read=is.read(len)) != -1){
                     bos.write(len, 0, read);
                     System.out.println("read---"+read);
                }
                bos.flush();
                bos.close();
                is.close();
           }catch(Exceptione) {
                e.printStackTrace();
           }
     }
}
publicclassFtpUtil {
     /**
      * Description: 从FTP服务器下载文件
      *
      *@paramurl
      *            FTP服务器hostname
      *@paramport
      *            FTP服务器端口
      *@paramusername
      *            FTP登录账号
      *@parampassword
      *            FTP登录密码
      *@paramremotePath
      *            FTP服务器上的相对路径
      *@paramfileName
      *            要下载的文件名
      *@paramlocalPath
      *            下载后保存到服务器的路径
      *@return
      */
     publicstaticbooleandownFile(Stringurl,intport, Stringusername,
                Stringpassword, StringremotePath, StringfileName,Stringpath
                ) {
           booleansuccess= false;
           FTPClientftp= new FTPClient();
           intreply;
           try{
                ftp.connect(url,port);
                ftp.login(username,password);
                ftp.setFileType(FTPClient.BINARY_FILE_TYPE);//文件类型为二进制文件
                reply= ftp.getReplyCode();
                if(!FTPReply.isPositiveCompletion(reply)) {
                     ftp.disconnect();
                     returnsuccess;
                }
                ftp.enterLocalPassiveMode();//本地模式
                ftp.changeWorkingDirectory(remotePath);
                FTPFile[]fs= ftp.listFiles();
                for(FTPFileff: fs) {
                     if(ff.getName().equals(fileName)) {
                           FilelocalFile= new File(path+ff.getName());
                           OutputStream  is= new FileOutputStream(localFile);
                           ftp.retrieveFile(ff.getName(),is);
                           is.close();
                     }
                }
                ftp.logout();
                success= true;
           }catch(SocketExceptione) {
                //TODOAuto-generated catch block
                e.printStackTrace();
           }catch(IOExceptione) {
                //TODOAuto-generated catch block
                e.printStackTrace();
           }finally{
                if(ftp.isConnected()) {
                     try{
                           ftp.disconnect();
                     }catch(IOExceptione) {
                           //TODOAuto-generated catch block
                           e.printStackTrace();
                     }
                }
           }
           returnsuccess;
     }
}
前台访问配置的servlet路径即可在网页上实现下载功能

java从ftp上下载图片到客户端本地相关推荐

  1. Java代码服务器上下载图片_Java如何从服务器中下载图片

    import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net ...

  2. ftp上传文件服务器报550错误_java ftp下载文件,Java 实现ftp上传下载文件

    最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...

  3. Java 实现Ftp上传下载文件

    最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...

  4. java ftp 上传文件到服务器,java实现ftp上传文件到服务器

    java实现ftp上传文件到服务器 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ ...

  5. java获取服务器上的图片进行拼接

    1.从服务器下载图片保存到本地 package com.example.demo.util;import java.io.File; import java.io.FileOutputStream; ...

  6. java ftp上传超时_有关java的ftp上传文件时断网的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我有一个java的ftp程序,他既是客户端又是服务端,我把程序放在两台电脑上运行, computer1和computer2,在computer1为文件上传 ...

  7. C代码实现从FTP上下载文件

    从FTP上下载文件这个功能我早就想实现了,但是苦于百度的文章大多是下载链接,一直没舍得积分下载,这次通过查阅MSDN,将一套下载流程函数摸了一下,写出代码实现从FTP下载文件 环境 VS2015 代码 ...

  8. 从FTP上下载文件到本地

    #region 下载文件/// <summary>/// 从FTP服务器下载文件,指定本地路径和本地文件名,20120817,ylh/// </summary>/// < ...

  9. JAVA 通过url下载图片保存到本地(亲测)

    //java 通过url下载图片保存到本地    public static void download(String urlString, int i) throws Exception {     ...

最新文章

  1. 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)
  2. 论文阅读:Joint Learning of Single-image and Cross-image Representations for Person Re-identification
  3. Struts2漏洞分析之Ognl表达式特性引发的新思路
  4. lg android tv usb播放视频,小测LG新品液晶TV内置高清视频播放功能
  5. [渝粤教育] 西南科技大学 中学英语教材教法 在线考试复习资料
  6. Effective C++学习第九天
  7. Java根据路径获取文件内容的三种场景分析
  8. python图像边缘检测_python 简单图像处理(11) 空间域图像锐化(边缘检测)
  9. linux常用的搜索命令
  10. python科学计算的几个例子
  11. 纯净的windows官方WinPE制作
  12. 13.2 RS编码和纠错算法
  13. 中华人民共和国消费者权益保护法
  14. nrf uart for android,nRF Toolbox for BLE
  15. 计算机专业29岁博士毕业,已经29岁了想去读博士晚不晚?
  16. vue项目无法启动,谷歌浏览器报:您与此网站之间建立的连接不安全,实际是cdn服务器过期
  17. 将栅格影像转换为CAD/GIS矢量的3种方法
  18. 基于FMC 接口的Xilinx FPGA XC7K325T PCIeX8 接口卡
  19. 诺贝尔奖获得者平均年龄是多少?属于我们的时间好像不多了
  20. 一种效果很好的自动白平衡技术(WhiteBalance)

热门文章

  1. Android巴士倒闭了吗
  2. 多线程爬虫获取A股历史行情数据!股票量化分析工具QTYX-V2.2.3
  3. 控油,真的可以缓解脂溢性脱发么?
  4. WatchStor观察:剖析pNFS和文件系统的未来
  5. 【杭电oj2034】人见人爱A-B
  6. 手机和Linux蓝牙通信,Linux下手机与蓝牙的连接配置
  7. 还期待内存/闪存降价?三星/海力士们撑不住了
  8. [2021-09-10] 【入门1】顺序结构——多行字符串的打印
  9. ST-Link V2驱动下载:
  10. MTCNN(一)python代码训练与运行