ftp画像のアップロード
21620 ワード
springboot ftp写真のアップロードは実現します。
1.application.yml
ftp:
host: 192.168.XX.XXX
port: 21
username: XXX
password: XXX
savePath: XXX
downloadUrl: /XXX/
readImgUrl: http://192.168.XX.XXX:8080/XXX/
2.pom.xml
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
3.FtpConfig
package cn.trawe.pay.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@Data
@ConfigurationProperties(prefix = "ftp")
public class FtpConfig {
private String host;
private int port;
private String username;
private String password;
private String savePath;
private String downloadUrl;
private String readImgUrl;
}
4.pom.xml
<dependency>
package cn.trawe.pay.utils;
import cn.trawe.pay.config.FtpConfig;
import cn.trawe.util.L;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.springframework.web.multipart.MultipartFile;
@Slf4j
public class FtpUtils {
/**
* ftp
* @param file
* @param
*/
public static String uploadFiles(MultipartFile file, FtpConfig config) {
String url = "";
//
if(file == null || file.isEmpty()){
log.info(L.b("FtpUtils").bt("uploadFiles").m("***** FTP , *****").s());
return "";
}
//
String originalName = file.getOriginalFilename();
String outFileName = System.currentTimeMillis() + originalName;
FTPClient ftp = new FTPClient();
try{
ftp.connect(config.getHost(),config.getPort());
boolean loginSuccess = ftp.login(config.getUsername(),config.getPassword());
if(loginSuccess){//
int reply = ftp.getReplyCode();
if(FTPReply.isPositiveCompletion(reply)){
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.setRemoteVerificationEnabled(false);
ftp.changeWorkingDirectory(config.getSavePath());//
//
boolean success = ftp.storeFile(outFileName,file.getInputStream());
if(!success){
log.info(L.b("FtpUtils").bt("uploadFiles").m("***** FTP *****").s());
return "";
}
//url = config.getDownloadUrl() + outFileName;//
url = outFileName;//
log.info(L.b("FtpUtils").bt("uploadFiles").m("***** FTP ").d(" url:",url).s());
}else{//
log.info(L.b("FtpUtils").bt("uploadFiles").m("*****FTP *****").s());
}
}else{//
log.info(L.b("FtpUtils").bt("uploadFiles").m("*****FTP *****").s());
}
}catch (Exception e){
log.info(L.b("FtpUtils").bt("uploadFiles").m("***** FTP *****").s());
}
// finally {
// try {
// ftp.logout();
// ftp.disconnect();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
return url;
}
}