分散ファイル・サーバへの角度アップロード写真FastDFS

手順を使用します

  1、必要な依存関係をアップロードし、ダウンロードしてください

  2、springmvcマルチメディアパーサ構成され、ロードされました

コードをコピー
    <! -表示設定パーサ- > 
    <豆ID = "MultipartResolver"クラス= "org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
        <! -ファイルフォーマット- > 
        <プロパティ名= "defaultEncoding" =値"UTF-8"> </プロパティ> 
        < -最大ファイルアップロード5メガバイトを設定し、。* 1024 5 1024 * - !> 
        <プロパティ名= "maxUploadSize"値= "5242880"> </プロパティ> 
    </ビーン> 

//スキャンファイルapplication.properties 
<=プロパティプレースホルダの位置コンテキストを "クラスパス:設定/ application.properties" />
コードをコピー
application.propertiesプロフィール
データ//application.propertiesファイル
FILE_SERVER_URL =のhttp://192.168.200.128/

 3、ファイルアップロードの仕様のフロントページ

コードをコピー
=機能this.uploadFile(){ 
        //データが背景に送信されます。
        VAR = FORMDATAいるFormData新新(); 
        //データFORMDATAに追加します。
        formData.append( "ファイル"、file.files [0]); 
        戻り値$ HTTP ({ 
            メソッド,: 'POST'は、
            URL '../アップロード/ uploadFile.do'、
            データ:FORMDATAは、
            。//ヘッダを追加し、お使いのブラウザでは、Content-Typeがマルチパート/フォームのデータに設定されている私たちを助ける
            ヘッダ:{ 'タイプのコンテンツ':未定義} //コンテンツタイプ:テキスト/テキストHTML /プレーン
            transformRequest:angular.identity 
        }); 
    }
コードをコピー

  図4に示すように、インタフェース・コードの背景

コードをコピー
@RestController 
@RequestMapping( "/アップロード")
publicクラスUploadController { 
    @value( "FILE_SERVER_URL $ {}")のサービスアドレスfastDFSへのコンテナから//春
    プライベート文字列FILE_SERVER_URL; "/ uploadFile")@RequestMapping 
    結果公衆uploadFile(MultipartFileファイル){ 
        試み{ 
            文字列名= file.getOriginalFilename(); 
            //ファイル名の拡張子を取得する
            文字列をEXTNAME = filename.substring(filename.indexOf()+ 1 "1"); 
            //コンパイル時の異常、キャッチキャプチャしてみてください
            FastDFSClient fastDFSClient新しい新FastDFSClient =( "CLASSPATH:fastdfs / fdfs_client.confを"); 
            サーバー・ストレージ・パスの//アドレス
            のString = fastDFSClient.uploadFile(ファイル。GetBytesメソッド()、EXTNAME)。 
            // IPアドレスの仮想マシンの格納アドレス、およびフロントエンドにサーバによって返されたファイルを返します
            文字列のURL = FILE_SERVER_URL + S; 
            新しい結果(真、URL)を返します。
        }キャッチ(例外e){ 
            e.printStackTrace(); 
            新しい検索結果を返す(偽、 "上传失败"); 
        } 
    } 
}
コードをコピー

  5、私はツールクラスとなり、トップパッケージFastDFS

コードをコピー
パブリッククラスFastDFSClient { 

    プライベートTrackerClient trackerClient = NULL; 
    プライベートTrackerServer trackerServer = NULL; 
    プライベートStorageServer storageServer = NULL; 
    プライベートStorageClient1 storageClient = NULL; 
    
    公共FastDFSClient(文字列CONF)が例外をスロー{ 
        IF(conf.contains( "クラスパス:")){ 
            CONF = conf.replace( "クラスパス:"。、this.getClass()のgetResource( "/")ある、getPath()) ; 
        } 
        ClientGlobal.init(CONF)。
        trackerClient =新しいTrackerClient(); 
        trackerServer = trackerClient.getConnection()。
        storageServer = NULL; 
        storageClient =新しいStorageClient1(trackerServer、storageServer)。
    
    / ** 
     *アップロードファイル方式
     * <p型>タイトル:uploadFile </ p型> 
     * <p型>説明:</ p型> 
     * @param fileNameにファイルのフルパス
     * @param EXTNAMEファイルの拡張子は含まれていません(。)
     * @ PARAMのメタ情報ファイルのエクステント情報
     * @return 
     *例外@throws 
     * / 
    パブリック文字列uploadFile(NameValuePairs []メタ情報のファイル名の文字列、文字列EXTNAMEは、)例外{スロー
        ;文字列結果= storageClient.upload_file1(ファイル名、EXTNAME、メタ情報)
        リターン結果; 
    } 
    
    ストリングuploadFile公開(文字列filename)は例外をスロー{ 
        uploadFile(ファイル名、NULL、NULL)を返します; 
    }
    
    ストリングuploadFile公開(ファイル名を文字列、文字列EXTNAME)は例外{スロー
        uploadFile(ファイル名、EXTNAME、null)を返す; 
    } 

    / ** 
     *アップロード方法
     * <P>をタイトル:uploadFile </ P> 
     * <P>説明:</ P> 
     * @param含むFileContentコンテンツファイル、バイト配列
     * @param EXTNAMEファイル拡張子
     * @paramのメタ情報ファイルのエクステント情報
     * @return 
     * @throws例外
     * / 
    パブリック文字列NameValuePairsのuploadFile(バイト[]含むFileContent、ストリングEXTNAME、[ ]メタ情報)が例外スロー{ 

        文字列結果= storageClient.upload_file1(含むFileContent、EXTNAME、メタ情報)を、
        返信結果; 
    }

    パブリック文字列uploadFile(バイト[]含むFileContent)は例外{スロー
        リターンuploadFile(含むFileContent、NULL、NULL)を、
    } 

    パブリック文字列uploadFile(バイト[]含むFileContent、ストリングEXTNAME)は例外{スロー
        リターンuploadFile(含むFileContent、EXTNAME、ヌル); 
    }
コードをコピー

  6、良い背景のURLの統合は前面から、前に渡されました

コードをコピー
$ scope.uploadFile =関数(){ 
        メソッド//コールuploadService完全なファイルアップロード
        uploadService.uploadFile()。成功(機能(応答){ 
            IF(response.success){ 
                //成功したGET URLではなく、爆弾のウィンドウ$ scope.image_entity.url = response.message; 
            }他{ 
                //ポップ失敗
                アラート(response.messageを); 
            } 
        }); 
    }
                
コードをコピー

 

 アップロードする私たちの写真を表示するには。

  1、必要な依存関係をアップロードし、ダウンロードしてください

  2、springmvcマルチメディアパーサ構成され、ロードされました

コードをコピー
    <! -表示設定パーサ- > 
    <豆ID = "MultipartResolver"クラス= "org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
        <! -ファイルフォーマット- > 
        <プロパティ名= "defaultEncoding" =値"UTF-8"> </プロパティ> 
        < -最大ファイルアップロード5メガバイトを設定し、。* 1024 5 1024 * - !> 
        <プロパティ名= "maxUploadSize"値= "5242880"> </プロパティ> 
    </ビーン> 

//スキャンファイルapplication.properties 
<=プロパティプレースホルダの位置コンテキストを "クラスパス:設定/ application.properties" />
コードをコピー
application.propertiesプロフィール
データ//application.propertiesファイル
FILE_SERVER_URL =のhttp://192.168.200.128/

 3、ファイルアップロードの仕様のフロントページ

コードをコピー
=機能this.uploadFile(){ 
        //データが背景に送信されます。
        VAR = FORMDATAいるFormData新新(); 
        //データFORMDATAに追加します。
        formData.append( "ファイル"、file.files [0]); 
        戻り値$ HTTP ({ 
            メソッド,: 'POST'は、
            URL '../アップロード/ uploadFile.do'、
            データ:FORMDATAは、
            。//ヘッダを追加し、お使いのブラウザでは、Content-Typeがマルチパート/フォームのデータに設定されている私たちを助ける
            ヘッダ:{ 'タイプのコンテンツ':未定義} //コンテンツタイプ:テキスト/テキストHTML /プレーン
            transformRequest:angular.identity 
        }); 
    }
コードをコピー

  図4に示すように、インタフェース・コードの背景

コードをコピー
@RestController 
@RequestMapping( "/アップロード")
publicクラスUploadController { 
    @value( "FILE_SERVER_URL $ {}")のサービスアドレスfastDFSへのコンテナから//春
    プライベート文字列FILE_SERVER_URL; "/ uploadFile")@RequestMapping 
    結果公衆uploadFile(MultipartFileファイル){ 
        試み{ 
            文字列名= file.getOriginalFilename(); 
            //ファイル名の拡張子を取得する
            文字列をEXTNAME = filename.substring(filename.indexOf()+ 1 "1"); 
            //コンパイル時の異常、キャッチキャプチャしてみてください
            FastDFSClient fastDFSClient新しい新FastDFSClient =( "CLASSPATH:fastdfs / fdfs_client.confを"); 
            サーバー・ストレージ・パスの//アドレス
            のString = fastDFSClient.uploadFile(ファイル。GetBytesメソッド()、EXTNAME)。 
            // IPアドレスの仮想マシンの格納アドレス、およびフロントエンドにサーバによって返されたファイルを返します
            文字列のURL = FILE_SERVER_URL + S; 
            新しい結果(真、URL)を返します。
        }キャッチ(例外e){ 
            e.printStackTrace(); 
            新しい検索結果を返す(偽、 "上传失败"); 
        } 
    } 
}
コードをコピー

  5、私はツールクラスとなり、トップパッケージFastDFS

コードをコピー
パブリッククラスFastDFSClient { 

    プライベートTrackerClient trackerClient = NULL; 
    プライベートTrackerServer trackerServer = NULL; 
    プライベートStorageServer storageServer = NULL; 
    プライベートStorageClient1 storageClient = NULL; 
    
    公共FastDFSClient(文字列CONF)が例外をスロー{ 
        IF(conf.contains( "クラスパス:")){ 
            CONF = conf.replace( "クラスパス:"。、this.getClass()のgetResource( "/")ある、getPath()) ; 
        } 
        ClientGlobal.init(CONF)。
        trackerClient =新しいTrackerClient(); 
        trackerServer = trackerClient.getConnection()。
        storageServer = NULL; 
        storageClient =新しいStorageClient1(trackerServer、storageServer)。
    
    / ** 
     *アップロードファイル方式
     * <p型>タイトル:uploadFile </ p型> 
     * <p型>説明:</ p型> 
     * @param fileNameにファイルのフルパス
     * @param EXTNAMEファイルの拡張子は含まれていません(。)
     * @ PARAMのメタ情報ファイルのエクステント情報
     * @return 
     *例外@throws 
     * / 
    パブリック文字列uploadFile(NameValuePairs []メタ情報のファイル名の文字列、文字列EXTNAMEは、)例外{スロー
        ;文字列結果= storageClient.upload_file1(ファイル名、EXTNAME、メタ情報)
        リターン結果; 
    } 
    
    ストリングuploadFile公開(文字列filename)は例外をスロー{ 
        uploadFile(ファイル名、NULL、NULL)を返します; 
    }
    
    ストリングuploadFile公開(ファイル名を文字列、文字列EXTNAME)は例外{スロー
        uploadFile(ファイル名、EXTNAME、null)を返す; 
    } 

    / ** 
     *アップロード方法
     * <P>をタイトル:uploadFile </ P> 
     * <P>説明:</ P> 
     * @param含むFileContentコンテンツファイル、バイト配列
     * @param EXTNAMEファイル拡張子
     * @paramのメタ情報ファイルのエクステント情報
     * @return 
     * @throws例外
     * / 
    パブリック文字列NameValuePairsのuploadFile(バイト[]含むFileContent、ストリングEXTNAME、[ ]メタ情報)が例外スロー{ 

        文字列結果= storageClient.upload_file1(含むFileContent、EXTNAME、メタ情報)を、
        返信結果; 
    }

    パブリック文字列uploadFile(バイト[]含むFileContent)は例外{スロー
        リターンuploadFile(含むFileContent、NULL、NULL)を、
    } 

    パブリック文字列uploadFile(バイト[]含むFileContent、ストリングEXTNAME)は例外{スロー
        リターンuploadFile(含むFileContent、EXTNAME、ヌル); 
    }
コードをコピー

  6、良い背景のURLの統合は前面から、前に渡されました

コードをコピー
$ scope.uploadFile =関数(){ 
        メソッド//コールuploadService完全なファイルアップロード
        uploadService.uploadFile()。成功(機能(応答){ 
            IF(response.success){ 
                //成功したGET URLではなく、爆弾のウィンドウ$ scope.image_entity.url = response.message; 
            }他{ 
                //ポップ失敗
                アラート(response.messageを); 
            } 
        }); 
    }
                
コードをコピー

 

 アップロードする私たちの写真を表示するには。

おすすめ

転載: www.cnblogs.com/wangju/p/11886979.html