Java如何实现文件压缩与上传FTP

Java如何实现文件压缩与上传FTP

目录

Java文件压缩与上传FTP

文件压缩

Ftp下载与上传文件

Java程序FTP上传文件

依赖架包 commons-net-3.4.jar

Java文件压缩与上传FTP 文件压缩

1.pom文件引入相关jar

<dependency>             <groupId>commons-net</groupId>             <artifactId>commons-net</artifactId>             <version>3.6</version>         </dependency>         <dependency>             <groupId>cn.hutool</groupId>             <artifactId>hutool-all</artifactId>             <version>5.3.8</version>         </dependency>

2.压缩文件

import cn.hutool.core.util.ZipUtil; import java.io.File; /**  * @Description:  * @author: luoy  * @date: 2020-06-24 09:18  */ public class FileUtil {     /**      * @desc:       * @author: luoy      * @param srcPath : 被压缩文件的源路径      * @param zipPath : 压缩后文件的路径      * @param zipName : 压缩后文件的名字      * @date: 2020/6/24 9:22      */     private static void  zipFile(String srcPath,String zipPath,String zipName){         ZipUtil.zip(srcPath,zipPath+ File.separator+zipName);     } } Ftp下载与上传文件 /**  * @Description:  * @author: luoy  * @date: 2020-06-24 09:18  */ public class FtpUtil {     private static  void  ftp() throws Exception{         //匿名登录(无需帐号密码的FTP服务器)         Ftp ftp = new Ftp("172.0.0.1");        //进入远程目录         ftp.cd("/opt/upload");        //上传本地文件         ftp.upload("/opt/upload", FileUtil.file("e:/test.webp"));         //下载远程文件         ftp.download("/opt/upload", "test.webp", FileUtil.file("e:/test2.webp"));          //关闭连接         ftp.close();     } } Java程序FTP上传文件 依赖架包 commons-net-3.4.jar package ftpTest; import java.io.File; import java.io.FileInputStream; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** * ftp 上传工具类 * * @author yulisao * @createDate 2020年3月19日 */ public class FTPUtil { /** * 上传文件ftp * * @param host ftp地址 * @param port ftp端口 * @param userName ftp用户名 * @param password ftp密码 * @param localFilePath 带上传本地文件路径 * @param ftpFilePath 远程ftp上的存放路径 */ public static boolean ftp(String host, int port, String userName, String password, String localFilePath, String ftpFilePath) { FTPClient ftpClient = null; try { ftpClient = new FTPClient(); // 连接FTP服务器 ftpClient.connect(host, port); // 登陆FTP服务器 ftpClient.login(userName, password); // 编码 ftpClient.setControlEncoding("UTF-8"); // 设置文件类型为二进制(如果从FTP下载或上传的文件是压缩文件的时候,不进行该设置可能会导致获取的压缩文件解压失败) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.changeWorkingDirectory("/"); ftpClient.enterLocalPassiveMode(); if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { System.out.println("连接FTP失败,用户名或密码错误。"); ftpClient.disconnect(); } else { System.out.println("FTP连接成功!"); return ftpClient.storeFile(ftpFilePath, new FileInputStream(new File(localFilePath))); } } catch (Exception e) { e.printStackTrace(); System.err.println("登陆FTP失败,请检查FTP相关信息是否正确!" + e); } /*OutputStream os = null; FileInputStream fis = null; try { // 获取ftp上的文件 os = ftpClient.storeFileStream(ftpFilePath); fis = new FileInputStream(new File(localFilePath)); if (os != null) { System.out.println("os" + os.toString()); } if (fis != null) { System.out.println("fis" + fis.toString()); } int length; byte[] bytes = new byte[1024]; while ((length = fis.read(bytes)) != -1) { os.write(bytes, 0, length); } System.out.println("FTP文件上传成功!"); } catch (Exception e) { System.err.println("FTP文件上传失败!" + e); } finally { try { if (fis != null) { fis.close(); } if (os != null) { os.close(); } } catch (IOException e) { e.printStackTrace(); } }*/ return false; } }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。

推荐阅读