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.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;
	}
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现FTP文件上传

    一.配置FTP文件服务器 以Ubuntu为例 FTP两种模式简介 PORT(主动模式) 第一步FTP客户端首先随机选择一个大于1024的端口p1,并通过此端口发送请求连接到FTP服务器的21号端口建立TCP连接,在FTP中这个连接叫做控制连接,连接成功建立后,FTP客户端会发送port命令,紧接着FTP客户端会监视自己的p1+1端口,FTP服务器接收到port命令会从自己的20号端口向FTP客户端的p1+1端口发起请求建立TCP连接,这个连接叫做数据连接,用来发送数据,数据传输完毕后数据连接随即

  • java文件上传至ftp服务器的方法

    用java实现ftp文件上传.我使用的是commons-net-1.4.1.zip.其中包含了众多的java网络编程的工具包. 1.把commons-net-1.4.1.jar包加载到项目工程中去. 2.看如下代码: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.commons.net.ft

  • Java上传文件FTP服务器代码实例

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Protocol(文件传输协议).顾名思义,就是专门用来传输文件的协议.简单地说,支持FTP协议的服务器就是FTP服务器. 在实际的应用中,通常是通过程序来进行文件的上传. 1.实现java上传文件到ftp服务器中 2.新建maven项目 添加依赖 <dependency> <groupId>comm

  • 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>            

  • Java实现FTP文件与文件夹的上传和下载

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)."下载"文件就是从远程主机拷贝文件至自己

  • Java 实现实时监听文件夹是否有新文件增加并上传服务器功能

    本文中主要陈述一种实时监听文件夹中是否有文件增加的功能,可用于实际文件上传功能的开发.     主要实现方式: (1)利用Timer的定时循环执行代码的功能: (2)利用WatchService实时监听文件夹是否有新文件增加,通过阻塞式IO流实现文件上传服务器. 代码如下: private static String path = "E:\\Kankan"; public static void getFile() throws FileNotFoundException, IOExc

  • java模拟TCP通信实现客户端上传文件到服务器端

    java模拟TCP通信实现客户端上传文件到服务器端,供大家参考,具体内容如下 客户端 package com.zr; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner; /* 客户端 */ public class T

  • 用Java进行zip文件压缩与解压缩

    可能存在的业务情况: 1.用户上传了压缩包,需校验压缩包中的文件是否合格. 2.用户上传压缩包,对压缩包中的文件进行批量水印处理 解决思路: 1.读取原压缩包文件,解压缩至临时目录 2.对临时目录中的解压缩文件进行校验/水印处理 3.对临时目录中处理过的文件进行压缩 4.删除临时目录及其下的文件 需要参考前面的校验PDF的帖子 测试结果如下: 测试代码: @Test public void testZip() { String filePath = "D:\\pdfTest\\合格压缩文件.zi

  • Java实现把文件压缩成zip文件的示例代码

    实现代码 ackage org.fh.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 说明:java压缩成zip * 作者:FH Admin * from:fhadmin.cn */ public class Fi

  • Vue.js 2.0 移动端拍照压缩图片上传预览功能

    在学习和使用Vue.js 2.0 的过程中遇到不少不一样的地方,本来移动端开发H5应用,准备将mui框架和Vue.js+vue-router+vuex 全家桶结合起来使用,但是在拍照上传的实现过程中遇到了无法调用plus的H5+接口的问题,所以最后拍照上传功能还是使用input file方式里解决的.但是内心还是不甘心的,由于项目进度推进,迭代版本,所以不得不放弃,后续可能我将此功能使用调用H5+接口实现. 首先我来讲我实现这个拍照预览压缩上传的思路,准确的说应该是拍照或选择图片压缩之后预览及上

  • iOS实现压缩图片上传功能

    本文实例为大家分享了iOS实现压缩图片上传功能,供大家参考,具体内容如下 #pragma mark - 打开相机 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ UIImage *image = info[UIImagePickerControllerOriginalImage]; s

  • C#遍历文件夹后上传文件夹中所有文件错误案例分析

    asp.net是没有直接选取文件夹的控件的,我也不知道,如果大家有的话可以一起交流下.后来我想着应该有三种方法: ①先将文件夹压缩后上传服务器,然后再服务器上解压: ②获得文件夹名及目录,然后遍历文件夹下面的文件以及子文件夹,循环上传: ③是使用AcitiveX控件. 那我果断就先通过上传对话框获得文件夹名和文件夹所在的系统文件路径,可是接下来就错愕了,一开始是想使用javascript遍历文件夹的 1  var fso = new ActiveXObject("Scripting.FileSy

  • JS异步文件分片断点上传的实现思路

    在项目中有时会遇到大文件上传,经常会出现链接超时的问题,所以就需要使用文件分片上传的方式来上传大文件.实现原理就是,在前端将文件分成指定大小的"文件块",分成多次上传,每次上传前先向后台查询已经上传成功的文件的大小,然后从指定的位置切割一块文件,进行上传,后台接收到文件块后追加到指定的文件中. 这篇博客适合有一些后台基础的朋友,或者有后台配合的前端. 这里需要后台提供两个接口,一个上传文件的接口,一个查询已上传文件大小的接口. 前端代码:https://github.com/li545

随机推荐