リモートFTPサーバーにアップロード静的リソース、FTPツールパッケージ

ツールは、別のプロジェクトであります

 

ftp.propertiesプロファイルに必要な情報を抽出します

ftp_host = 192.168.110.128 
ftp_port = 21 
ftp_username = FTPUSER 
FTP_PASSWORD = FTPUSER 
ftp_dir = /ホーム/ FTPUSER / JD 
ftp_url =のhttp:// www.images.com

 

パッケージングツールFtpUtils

パブリック クラスFtpUtils {
     プライベート 静的な文字列ftp_host = nullをプライベート 静的な文字列ftp_port = nullをプライベート 静的な文字列ftp_username = nullをプライベート 静的な文字列FTP_PASSWORD = nullをプライベート 静的な文字列ftp_dir = nullをプライベート 静的な文字列ftp_url = nullを// 1、封装参数
    静的{ 
        入力ストリームRIS = FtpUtils。クラス。.getClassLoader()getResourceAsStream( "ftp.properties" ); 
        [プロパティ] PP = 新しいプロパティ();
        試す{ 
            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" )。キャッチ(IOExceptionをE){ 
            e.printStackTrace()は; 
        } 
    } 
    / ** ** 
     *内蔵のアップロードファイル静的リソースサーバ達成する
     * / 
    パブリック 静的な文字列uploadFileは(リモート文字列は、入力ストリームローカル){ 
        
        試み{
             //はオブジェクトを作成FTPClient 
            FTPClientを=クライアントの新しい新FTPClient();
             // 作成し、FTPサービスは、リンク
            client.connect(ftp_host、Integer.parseInt(ftp_portを));
             // 認証
            client.login(ftp_username、FTP_PASSWORD);
             //はアップロードするファイルの種類を設定します
            client.setFileType(FTP.BINARY_FILE_TYPE)。
            // 切换工作目录
            場合(!client.changeWorkingDirectory(ftp_dir)){ 
                client.makeDirectory(ftp_dir)。
                client.changeWorkingDirectory(ftp_dir)。
            } 
            // 上传
            client.storeFile(リモート、ローカル)。
            
        } キャッチ(例外例){ 
            ex.printStackTrace(); 
        } 
        戻り ftp_url + "/ JD /" + 遠隔。
    } 
}

インポートのjarパッケージのバージョン:

<! - ftpclient客户端- > 
<! - FTP文件上传- > 
 <依存> 
       <groupIdを>コモンズネット</ groupIdを> 
       <たartifactId>コモンズネット</たartifactId> 
       <バージョン> 3.3 </バージョン> 
 </依存関係>

テストコール:

/ ** 
     *处理上传图片请求
     * / 
    @Override 
    パブリックマップの<string、オブジェクト> uploadImageService(MultipartFile MF){
         // TODO自動生成方法スタブ 
        のHashMap <文字列、OBJECT>マップ= 新しい HashMapの<> ();
        試す{
             // 文件重命名 
            列OLDNAME = mf.getOriginalFilename()。
            ストリング遠隔 = IDUtils.genImageName()+ oldName.substring(oldName.lastIndexOf( "" ))。

            文字列のURL = FtpUtils.uploadFile(リモート、mf.getInputStream())。
            map.put( "エラー"、0 );
            map.put( "URL" 、URL); 
        } キャッチ(IOExceptionを電子){
             // TODO自動生成キャッチブロック 
            map.put( "エラー"、1 ); 
            map.put( "メッセージ"、 "上传失败" )。
            e.printStackTrace(); 
        } 
        リターンマップ。
    }

 

 

注意:springbootを使用し、それは、対応するXML設定ファイルが存在しないので、FTPを統合しました。

 

おすすめ

転載: www.cnblogs.com/ncl-960301-success/p/11421162.html