ファイルをアップロードし、エコー

ここでファイルをアップロードし、エディタでメインスピーカーをエコー

1.インポートし、対応するjarファイルのパッケージ

<! - タイム・オペレーティング・コンポーネント - >
            <依存>
                <groupIdを>ジョダ-時間</ groupIdを>
                <たartifactId>ジョダ-時間</たartifactId>
                <バージョン> 2.5 </バージョン>
            </依存関係>


            <! -  Apacheのツールコンポーネント - >
            <依存>
                <groupIdを> org.apache.commons </ groupIdを>
                <たartifactId>コモンズ-lang3 </たartifactId>
                <バージョン> 3.3.2 </バージョン>
            </依存関係>
            <依存>
                <groupIdを> org.apache.commons </ groupIdを>
                <たartifactId>コモンズ-IO </たartifactId>
                <バージョン> 1.3.2 </バージョン>
            </依存関係>
            <! - 依存の写真をアップロード - >
            <依存>
                <groupIdを>コモンズ-ファイルアップロード</ groupIdを>
                <たartifactId>コモンズ-ファイルアップロード</たartifactId>
                <バージョン> 1.3.2 </バージョン>
            </依存関係>

2. [設定springMVCプロフィール

<! - ファイルアップロードパーサ - >
    <ビーンID = "multipartResolver" クラス = "org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <プロパティ名= "maxUploadSize" 値= "20971520" />
    </豆>

3.beanツール

パッケージcom.taotao.common.bean。

パブリック クラスPicUploadResult {
    
    プライベート整数エラー; // ファイル形式をアップロード裁判官は正しいです
    
    プライベート文字列のURL; // 表示する画像ファイルのパス
    
    プライベート文字列の幅。
    
    プライベート文字列の高さ。

    パブリック整数getError(){
         戻りエラー;
    }

    公共 ボイドSETERROR(整数エラー){
         この .ERROR = エラー。
    }

    公共の文字列のgetURL(){
         リターンURL;
    }

    公共 のボイドてsetURL(文字列のURL){
         このする.url = URL;
    }

    パブリック文字列のgetWidth(){
         戻り幅。
    }

    公共 ボイドにsetWidth(文字幅){
         この .width = 幅。
    }

    パブリック文字列のgetHeight(){
         戻り高さ;
    }

    公共 ボイドsetHeightメソッド(文字列の高さ){
         この .height = 高;
    }
    
    

}

特定のアプリケーション層4.controller

パッケージcom.taotao.manage.controller。

輸入java.awt.image.BufferedImage。
インポートのjava.io.File;
インポートにjava.io.IOException;
輸入java.util.Date;

輸入javax.imageio.ImageIO;
インポートのjavax.servlet.http.HttpServletResponse;

輸入org.apache.commons.lang3.RandomUtils。
輸入org.apache.commons.lang3.StringUtils。
輸入org.joda.time.DateTime。
輸入org.slf4j.Logger。
輸入org.slf4j.LoggerFactory;
輸入org.springframework.beans.factory.annotation.Autowired;
輸入org.springframework.http.MediaType。
輸入org.springframework.stereotype.Controller。
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RequestMethod;
輸入org.springframework.web.bind.annotation.RequestParam。
インポートorg.springframework.web.bind.annotation.ResponseBody;
輸入org.springframework.web.multipart.MultipartFile。

輸入com.fasterxml.jackson.databind.ObjectMapper。
輸入com.taotao.common.bean.PicUploadResult。
輸入com.taotao.manage.service.PropertiesService。


/ **
 *画像のアップロードに依存するJARパッケージ1は、プロファイル2.構成ファイルアップロードコントロール層3リゾルバに導入され、
 * /
@コントローラ
@RequestMapping( "/ PIC" パブリック クラスPicUploadController {

    プライベート 静的 最終ロガーLOGGER = LoggerFactory.getLogger(PicUploadController。クラス);

    @Autowired
    プライベートPropertiesService propertiesService。
プライベート 静的 最終 ObjectMapperマッパー= 新しいObjectMapper(); // 形式アップロードさせ プライベート 静的 最終列[] = IMAGE_TYPE 新しい新しい文字列[] { ".BMP"、 ".JPG"、 ".JPEG"、 ".GIF"、 ".PNG"を}。 @RequestMapping(値 = "/アップロード"、メソッド= RequestMethod.POST) @ResponseBody パブリック文字列アップロード(@RequestParam( "uploadFile")MultipartFile uploadFile、HttpServletResponseの応答)がスロー例外{ // チェック画像フォーマット ブール isLegal = falseに(文字列型:IMAGE_TYPE){ IF (StringUtils.endsWithIgnoreCase(uploadFile.getOriginalFilename()、タイプ)){ isLegal = ; 破ります; } } // パッケージ結果オブジェクト、およびファイルは、バイト配列オブジェクト結果の中に配置され PicUploadResult fileUploadResult = 新しい新しいPicUploadResult()。 // 状态 fileUploadResult.setError(isLegal 0:?1 )。 // ファイルを新しいパス 文字列filePathに= GetFilePath(uploadFile.getOriginalFilename()); もし(LOGGER.isDebugEnabled()){ LOGGER.debug( "プリ画像ファイルのアップロード[{}]に[{}]。。" 、uploadFile.getOriginalFilename()ファイルパス)。 } // 。私は絶対参照は、構成画像サーバの設定ngnixに対処していないため、画像を生成した 文字列picUrl = StringUtils.replace(StringUtils.substringAfter(filePathに、propertiesService.IMAGE_REPOSITORY)は、 "\\"、 "/" ); fileUploadResult.setUrl(propertiesService.IMAGE_URL + picUrl)。 newFileファイル = 新しいファイル(filePathに); // ディスクへのファイル書き込み uploadFile.transferTo(にnewFile)を、 // 画像の合法性を確認する isLegal =が; 試して{ バッファ画像イメージ = ImageIO.read(にnewFile)。 もし(画像!= nullの){ fileUploadResult.setWidth(image.getWidth() + "" ); fileUploadResult.setHeight(image.getHeight() + "" ); isLegal = ; } } キャッチ(IOExceptionを電子){ } // 状态 fileUploadResult.setError(isLegal 0:?1 )。 IF(!isLegal){ // 違法は、ディスク上のファイルを削除します )(newFile.delete。 } response.setContentType(MediaType.TEXT_HTML_VALUE)。 返すmapper.writeValueAsString(fileUploadResultを)。 } プライベート文字列getFilePath(文字列でSourceFileName){ 文字列baseFolder = propertiesService.IMAGE_REPOSITORY + File.separator + "画像" ; 日付nowDate = 新しい日付(); // YYYY / MM / DD 文字列fileFolder = baseFolder + File.separator + 新しい日時(nowDate).toString( "YYYY")+ File.separator + 新しい日時(nowDate).toString( "MM")+ File.separator + 新しい日時(nowDate).toString( "DD" ); ファイルファイル = 新しい新しいファイル(fileFolder); IF(!File.isDirectory()){ // ディレクトリが存在しない場合は、ディレクトリの作成 file.mkdirsを(); } // 生成新的文件名 のString fileNameに= 新しい日時(nowDate).toString( "yyyyMMddhhmmssSSSS")+ RandomUtils.nextInt(100、9999)+ "" + StringUtils.substringAfterLast(SourceFileNameは、 "" )。 返す fileFolder + File.separator + ファイル名を。 } }

上記組み込まれたアプリケーション層制御装置内の2つの方法で属性ファイル

プロパティファイルenv.properties

image_repository = D:\\ bigdata6 \\ taotao- アップロード
IMAGE_URL =のhttp:// image.taotao.com

プロファイルapplicationContext.xmlをバネにおける属性ファイルに導入

<! - プロパティファイルの紹介 - >
     <コンテキスト:プロパティプレースホルダ位置=「クラスパス:*プロパティ」/>

最初の

サービス層に設立さPropertiesService.java

パッケージcom.taotao.manage.service。

輸入org.springframework.beans.factory.annotation.Value。
輸入org.springframework.stereotype.Service。

@サービス
パブリック クラスPropertiesService {
    @value(「image_repository $ {}」)// プロパティファイルの値を読み取る
    パブリック文字列IMAGE_REPOSITORYと、
    
    @value(「IMAGE_URLの$ {}」)// プロパティファイルの値を読み取る
    パブリック文字列IMAGE_URLと、
    
}

レイヤーは、コントローラに追加されました

@Autowired 
プライベート PropertiesService propertiesService。

第2

まずspringMVCプロファイルを追加しました

<! - プロパティファイルの紹介 - >
     <コンテキスト:プロパティプレースホルダ位置= "クラスパス:env.properties" />

レイヤーは、コントローラに追加されました

@value(「image_repository $ {}」)// プロパティファイルの値を読み取る
    パブリック文字列IMAGE_REPOSITORYと、
    
    @value(「IMAGE_URLの$ {}」)// プロパティファイルの値を読み取る
    パブリック文字列IMAGE_URLと、

 

おすすめ

転載: www.cnblogs.com/sitian2050/p/11668326.html