文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java实现上传和下载工具类

2023-05-31 14:45

关注

本文实例为大家分享了文件上传到ftp服务工具类,供大家参考,具体内容如下

直接引用此java工具类就好

import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;public class FtpUtil {     public static boolean uploadFile(String host, int port, String username, String password, String basePath,      String filePath, String filename, InputStream input) {    boolean result = false;    FTPClient ftp = new FTPClient();    try {      int reply;      ftp.connect(host, port);// 连接FTP服务器      // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器      ftp.login(username, password);// 登录      reply = ftp.getReplyCode();      if (!FTPReply.isPositiveCompletion(reply)) {        ftp.disconnect();        return result;      }      //切换到上传目录      if (!ftp.changeWorkingDirectory(basePath+filePath)) {        //如果目录不存在创建目录        String[] dirs = filePath.split("/");        String tempPath = basePath;        for (String dir : dirs) {          if (null == dir || "".equals(dir)) continue;          tempPath += "/" + dir;          if (!ftp.changeWorkingDirectory(tempPath)) {            if (!ftp.makeDirectory(tempPath)) {              return result;            } else {              ftp.changeWorkingDirectory(tempPath);            }          }        }      }      //设置上传文件的类型为二进制类型      ftp.setFileType(FTP.BINARY_FILE_TYPE);      //上传文件      if (!ftp.storeFile(filename, input)) {        return result;      }      input.close();      ftp.logout();      result = true;    } catch (IOException e) {      e.printStackTrace();    } finally {      if (ftp.isConnected()) {        try {          ftp.disconnect();        } catch (IOException ioe) {        }      }    }    return result;  }       public static boolean downloadFile(String host, int port, String username, String password, String remotePath,      String fileName, String localPath) {    boolean result = false;    FTPClient ftp = new FTPClient();    try {      int reply;      ftp.connect(host, port);      // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器      ftp.login(username, password);// 登录      reply = ftp.getReplyCode();      if (!FTPReply.isPositiveCompletion(reply)) {        ftp.disconnect();        return result;      }      ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录      FTPFile[] fs = ftp.listFiles();      for (FTPFile ff : fs) {        if (ff.getName().equals(fileName)) {          File localFile = new File(localPath + "/" + ff.getName());          OutputStream is = new FileOutputStream(localFile);          ftp.retrieveFile(ff.getName(), is);          is.close();        }      }      ftp.logout();      result = true;    } catch (IOException e) {      e.printStackTrace();    } finally {      if (ftp.isConnected()) {        try {          ftp.disconnect();        } catch (IOException ioe) {        }      }    }    return result;  }    public static void main(String[] args) {    try {       FileInputStream in=new FileInputStream(new File("D:\\temp\\image\\gaigeming.jpg"));       boolean flag = uploadFile("192.168.25.133", 21, "ftpuser", "ftpuser", "/home/ftpuser/www/images","/2015/01/21", "gaigeming.jpg", in);       System.out.println(flag);     } catch (FileNotFoundException e) {       e.printStackTrace();     }   }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯