一、创建上传工具类
package com.cuinn.upload.utils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import java.io.IOException;
import java.io.InputStream;
public class FtpUtil {
//ftp服务器ip地址
private static final String FTP_ADDRESS = "1.127.70.215";
//端口号
private static final int FTP_PORT = 21;
//用户名
private static final String FTP_USERNAME = "user-file";
//密码
private static final String FTP_PASSWORD = "123456";
//附件路径
private static final String FTP_BASEPATH = "/home/user-file/files";
public static boolean uploadFile(String fileName, InputStream inputStream) {
boolean success = false;
FTPClient ftpClient = new FTPClient();
try{
int reply;
ftpClient.connect(FTP_ADDRESS, FTP_PORT);//连接FTP服务器
ftpClient.login(FTP_USERNAME, FTP_PASSWORD);//登录
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)){
ftpClient.disconnect();
return false;
}
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.makeDirectory(FTP_BASEPATH);
ftpClient.changeWorkingDirectory(FTP_BASEPATH);
ftpClient.enterLocalPassiveMode();
ftpClient.storeFile(fileName, inputStream);
inputStream.close();
ftpClient.logout();
success = true;
}catch (IOException e){
e.printStackTrace();
}finally {
if (ftpClient.isConnected()){
try{
ftpClient.disconnect();
}catch (IOException e){
e.printStackTrace();
}
}
}
if (success){
System.out.println("方法执行成功,文件上传到FTP服务器");
}
return success;
}
}
二、创建本地文件,调用FTP工具类进行文件上传
package com.cuinn.upload.file;
import com.cuinn.upload.utils.FtpUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public static boolean createFile(){
boolean success = false;
FileOutputStream fileOutputStream = null;
InputStream inputStream = null;
OutputStreamWriter outputStreamWriter = null;
try{
//创建文件
File file = new File("D:\\hello.txt");
if (!file.exists()){
file.createNewFile();
}
//以追加的方式写入内容
fileOutputStream = new FileOutputStream(file, true);
//获取模板内容
String content = generateTemplate("我是信息行内容");
//byte[] bytes = content.getBytes(StandardCharsets.UTF_8);
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8");
outputStreamWriter.write(content);
//写入字节数组指定区间
//fileOutputStream.write(bytes, 0, content.length());
//获取文件输入流
inputStream = new FileInputStream(file);
//文件上传
String fileName = file.getName();
FtpUtil.uploadFile(fileName, inputStream);
success = true;
}catch (IOException e){
e.printStackTrace();
}finally {
try{
inputStream.close();
outputStreamWriter.close();
}catch (IOException e){
e.printStackTrace();
}
}
return success;
}
三、SpringBoot启动类,运行测试
package com.cuinn.upload;
import com.cuinn.upload.file.CreateFile;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootUploadFileToFTPApplication {
public static void main(String args[]){
SpringApplication.run(SpringBootUploadFileToFTPApplication.class, args);
if (CreateFile.createFile()){
System.out.println("文件上传成功!");
}else {
System.out.println("文件上传失败!");
}
}
}
四、测试结果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71715.html