Java如何實現文件壓縮與上傳FTP
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.jpg")); //下載遠程文件 ftp.download("/opt/upload", "test.jpg", FileUtil.file("e:/test2.jpg")); //關閉連接 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; } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java使用FTP上傳文件並模擬接受的方法
- java實現上傳文件到FTP
- Java將文件上傳到ftp服務器
- java中MultipartFile互轉File的方法
- Java輕松使用工具類實現獲取MP3音頻時長