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

}