失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java ftp linux服务器_linux搭建ftp服务器实现java文件上传

java ftp linux服务器_linux搭建ftp服务器实现java文件上传

时间:2020-12-21 07:43:11

相关推荐

java ftp linux服务器_linux搭建ftp服务器实现java文件上传

安装前先检查是否已经安装了FTP,检查命令:

rpm -qa|grep vsftp;

安装ftp

yum install vsftpd

启动ftp

service vsftpd start

在启动ftp的时候可能会出现启动失败的错误(我忘记截图了)

好像是job啥的来着

解决办法是修改ftp配置文件

查看ftp状态

service vsftpd status

设置成开机自启动:chkconfig --level 35 vsftpd on

注意:此时FTP还不能使用,得安装客户端才能够使用

image.png

image.png

下载好之后再服务器新建一个目录 上传刚才下载的客户端 然后进行安装

我的目录

image.png

#######然后安装

rpm -ivh ftp-0.17-51.1.el6.x86_64.rpm

image.png

安装完成后,需要先设置用户名密码,执行命令:

添加用户:

useradd admin -s /sbin/nologin

设置密码:

passwd admin

然后进行登陆:数据ftp进入到ftp操作命令里,执行命令oepn ip进入到指定的ftp中,然后输入用户名密码进行登陆

image.png

window下连接ftp上传文件

window+R

ftp +ip(你服务器的ip)

账号密码登录

put+任意文件的地址

测试上传 然后到你的ftp服务器根目录下看有没有文件

image.png

java连接ftp上传文件

下载依赖

commons-net

commons-net

3.6

FileUtils工具类

package com.austshop.austshop.Utils;

import .ftp.FTPClient;

import .ftp.FTPReply;

import org.apache.log4j.Logger;

import org.springframework.web.multipart.MultipartFile;

import java.io.*;

import java.math.BigInteger;

import .MalformedURLException;

import java.security.MessageDigest;

/**

* 计算文件md5值

*/

public class FileUtils {

private static Logger logger = Logger.getLogger(FileUtils.class);

// ftp连接客户端

public static FTPClient ftpClient = null;

// 用户名

private static final String ftpUserName = "ftpadmin";

// 密码

private static final String ftpPassword = "adminroot123";

// 主机

private static final String ftpHost = "自己服务器ip";

// 端口

private static final int ftpPort = 21;

// 文件存储位置

private static final String ftpPath = "/home/upload";

// 获取文件的md5值

public static String getFileMD5(MultipartFile file) {

try {

byte[] uploadBytes = file.getBytes();

MessageDigest md5 = MessageDigest.getInstance("MD5");

byte[] digest = md5.digest(uploadBytes);

String hashString = new BigInteger(1, digest).toString(16);

return hashString;

} catch (Exception e) {

logger.error(e.toString(), e);

}

return null;

}

/**

* 初始化ftp服务器

*/

public static void initFtpClient(String ftpHost, String ftpUserName, String ftpPassword, Integer ftpPort) {

ftpClient = new FTPClient();

ftpClient.setControlEncoding("utf-8");

try {

//连接ftp服务器

ftpClient.connect(ftpHost, ftpPort);

//登录ftp服务器

ftpClient.login(ftpUserName, ftpPassword);

//登录服务器响应码

int replyCode = ftpClient.getReplyCode();

if (!FTPReply.isPositiveCompletion(replyCode)) {

logger.error("connect failed...ftp服务器:" + ftpHost + ":" + ftpPort);

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 上传文件

*

* @param fileName 上传到ftp的文件名

* @param inputStream 输入文件流

* @return

*/

public static boolean uploadFile(String fileName, InputStream inputStream) {

// 设置开关

boolean flag = true;

try {

initFtpClient(ftpHost, ftpUserName, ftpPassword, ftpPort);

ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);

ftpClient.enterLocalPassiveMode();

ftpClient.makeDirectory(ftpPath);

ftpClient.setControlEncoding("utf-8");

ftpClient.storeFile(fileName, inputStream);

inputStream.close();

ftpClient.logout();

logger.info("上传文件成功");

} catch (Exception e) {

flag = false;

logger.error("上传文件失败");

e.printStackTrace();

} finally {

if (ftpClient.isConnected()) {

try {

ftpClient.disconnect();

} catch (IOException e) {

e.printStackTrace();

}

}

if (null != inputStream) {

try {

inputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return flag;

}

}

package com.austshop.austshop.service;

import com.austshop.austshop.Utils.FileUtils;

import com.austshop.austshop.Utils.MD5Utils;

import com.austshop.austshop.entity.FileInfo;

import com.austshop.austshop.mapper.FileMapper;

import com.austshop.austshop.service.impl.IFileService;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;

import java.io.IOException;

import java.util.Date;

import java.util.UUID;

@Service(value = "fileSerice")

public class FileService implements IFileService {

/**

* 注入DAO层

*/

@Autowired

private FileMapper fileMapper;

private static Logger logger = Logger.getLogger(FileUtils.class);

@Override

public FileInfo getFileInsert(MultipartFile multipartFile) {

FileUtils fileUtils = new FileUtils();

// 文件后缀名

String extension = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf('.') + 1);

// 文件前缀名

String suffix = MD5Utils.md5(multipartFile.getOriginalFilename());

// 拼接成新的文件名

String newFileName = suffix + "." + extension;

/**

* 进行md5校验 如果根据md5查询不到数据就执行新增

*/

try {

if (fileUtils.uploadFile(newFileName, multipartFile.getInputStream())) {

logger.info("文件" + newFileName + "上传成功");

} else {

logger.info("文件" + newFileName + "上传失败");

}

} catch (IOException e) {

e.printStackTrace();

}

FileInfo fileInfo = new FileInfo();

if (fileMapper.getFileInfoByMD5(FileUtils.getFileMD5(multipartFile)) == null) {

fileInfo.setId(UUID.randomUUID().toString().toLowerCase());

fileInfo.setFileName(newFileName);

fileInfo.setLength(multipartFile.getSize());

fileInfo.setMd5(FileUtils.getFileMD5(multipartFile));

fileInfo.setUrl("http://132.232.66.140:81/" + newFileName);

fileInfo.setCreate_time(new Date());

fileMapper.insertFileSelective(fileInfo);

} else {

fileInfo = fileMapper.getFileInfoByMD5(FileUtils.getFileMD5(multipartFile));

}

return fileInfo;

}

}

如果觉得《java ftp linux服务器_linux搭建ftp服务器实现java文件上传》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。