静态资源上传至远程ftp服务器,ftp工具类封装

Posted ncl-960301-success

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态资源上传至远程ftp服务器,ftp工具类封装相关的知识,希望对你有一定的参考价值。

工具类,是一个单独的工程项目

技术图片

 

提取必要信息至ftp.properties配置文件中

ftp_host=192.168.110.128
ftp_port=21
ftp_username=ftpuser
ftp_password=ftpuser
ftp_dir=/home/ftpuser/jd
ftp_url=http://www.images.com

 

封装FtpUtils工具类

public class FtpUtils 
    private static String ftp_host = null;
    private static String ftp_port = null;
    private static String ftp_username = null;
    private static String ftp_password = null;
    private static String ftp_dir = null;
    private static String ftp_url = null;
    //1、封装参数
    static
        InputStream ris = FtpUtils.class.getClassLoader().getResourceAsStream("ftp.properties");
        Properties pp = new Properties();
        try 
            pp.load(ris);
            ftp_host = pp.getProperty("ftp_host");
            ftp_port = pp.getProperty("ftp_port");
            ftp_username = pp.getProperty("ftp_username");
            ftp_password = pp.getProperty("ftp_password");
            ftp_dir = pp.getProperty("ftp_dir");
            ftp_url = pp.getProperty("ftp_url");
         catch (IOException e) 
            e.printStackTrace();
        
    
    /****
     * 实现建文件上传到静态资源服务器
     */
    public static String uploadFile(String remote,InputStream local) 
        
        try 
            //创建FTPClient对象 
            FTPClient client=new FTPClient();
            //建立和ftp服务的链接
            client.connect(ftp_host, Integer.parseInt(ftp_port));
            //身份验证
            client.login(ftp_username, ftp_password);
            //设置上传的文件类型
            client.setFileType(FTP.BINARY_FILE_TYPE);
            //切换工作目录
            if(!client.changeWorkingDirectory(ftp_dir)) 
                client.makeDirectory(ftp_dir);
                client.changeWorkingDirectory(ftp_dir);
            
            //上传
            client.storeFile(remote, local);
            
        catch(Exception ex) 
            ex.printStackTrace();
        
        return ftp_url+"/jd/"+remote;
    

导入jar包版本:

<!-- ftpclient客户端  -->
<!--ftp文件上传-->
 <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
       <version>3.3</version>
 </dependency>

测试调用:

/**
     * 处理上传图片请求
     */
    @Override
    public Map<String, Object> uploadImageService(MultipartFile mf) 
        // TODO Auto-generated method stub
        HashMap<String, Object> map = new HashMap<>();
        try 
            //文件重命名
            String oldName = mf.getOriginalFilename();
            String remote = IDUtils.genImageName()+oldName.substring(oldName.lastIndexOf("."));

            String url = FtpUtils.uploadFile(remote, mf.getInputStream());
            map.put("error", 0);
            map.put("url", url);
         catch (IOException e) 
            // TODO Auto-generated catch block
            map.put("error", 1);
            map.put("message", "上传失败");
            e.printStackTrace();
        
        return map;
    

 

 

注:使用的是springboot,已经集成了ftp,所以没有配置相应的xml文件。

 

以上是关于静态资源上传至远程ftp服务器,ftp工具类封装的主要内容,如果未能解决你的问题,请参考以下文章

阿里云ftp连接工具,阿里云ftp连接工具使用教程,宝塔面板备份网站文件至ftp服务器教程。

linux备份数据库并上传至远程服务器(定时执行shell进行ftp上传)

java ftp 都有哪些工具类

推荐一个java操作ftp的工具类

如何将http上的文件远程上传到ftp空间里?

批量ftp上传工具,推荐3款免费的ftp服务器软件,批量ftp上传工具