手順を使用します
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を); } }); }
アップロードする私たちの写真を表示するには。