春のMVC(マルチ)ファイルのアップロードおよびダウンロードで

ファイルのアップロード

ステップ1:プロパティの設定JSPページのフォーム

要求アドレスの行動値、代表的な実施形態の方法リクエストは、フォームファイルアップロード要求モードでなければならないPOST。

enctype = "multipart / form-データ " ファイルアップロードフォームに必要な値

< フォームアクション=「/第一/ファイルアップロード」方法=「POST」のenctype =「マルチパート/フォームデータ」> < 入力タイプ=「ファイル」=「ファイル」> 
    < 入力タイプ=「ファイル」=「ファイル」> 
    < 入力タイプ= "提出" = "提交" > 
</ フォーム>

ステップ2:書き込み制御方法

提出前のファイル方法の最初のパラメータ、パラメータ名とフォームは、同じではないの使用に同じ名前を付ける必要がある@RequestParamのセットを

@Controller 
@ RequestMapping( "/ファースト" のパブリック クラスFirstController {
   // ファイルアップロード 
    RequestMapping( "/するFileUpload" @ 公共の   文字列のFileUpload(@RequestParam MultipartFile []ファイル、HttpSessionのセッション)がスローにIOException { 
        String型のrealpath = session.getServletContextを( ).getRealPath(「/ IMG」); //ディレクトリIMGのターゲットディレクトリのフルパスを取得
    //ファイルオブジェクトの各サイクルを得る
ために(MultipartFileアイテム:ファイル){
       //ファイルの元の名前取得する 文字列fileNameに
= item.getOriginalFilename (); ファイルファイル = 新しい新ファイル(実パスは、ファイル名); System.out.printlnは(ファイル);
        //書き込みファイルファイル最低スケジューリングディスク書き込み()メソッドに。 Item.transferTo(ファイル); }
リターン "購入可能な" ; } }

ステップ3:xmlファイルのアップロードパーサで設定

豆のID値でなければなりませんmultipartResolver

    <! - ファイルアップロードパーサ- > 
    < 上記のid上記= "MultipartResolver" クラス= "org.springframework.web.multipart.commons.CommonsMultipartResolver" > 
        <! - 文字セットのファイルアップロード- > 
        < プロパティ= "defaultEncoding" = "UTF-8" > </ プロパティ> 
        <! - ファイルの合計サイズ- > 
        < プロパティ= "maxUploadSize" = "50億" > </ プロパティ> 
        <! - 単一のファイルサイズ- > 
        <プロパティ=「maxUploadSizePerFile」= "50000000" > </ プロパティ> 
    </ >

 

ダウンロード

  // ファイルのダウンロード 
    RequestMapping(「/ FileDownload」@ 公共 <ResponseEntity バイト []>ダウンロード()がスローにIOException {
         // ドキュメントの準備 
        ファイルファイル= 新しい新しいファイル(「ファイルのフルパスを」;)
         // 中国のファイル名を解決する文字化け(中国名の設定ファイル)
         // GetBytesメソッド()は、投げたりキャッチ例外する必要がある 
        文字列のファイル名= 新しい新しい文字列(.getBytes ".txtのファイルのダウンロード"( "UTF-8")、 "ISO8859-1" );
         // 設定応答ヘッダ 
        HttpHeadersヘッダー= 新しい新しいHttpHeaders(); 
        headers.setContentDispositionFormData( "添付ファイル"、ファイル名);
        // STREAM流れるようにコンテンツタイプを設定し
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAMを);
         // readFileToByteArray()スローやキャッチ例外が必要と
        返す 新しい新しい ResponseEntityを< バイト []> (FileUtils.readFileToByteArray(ファイル)、ヘッダ、HttpStatus.OK) ; 
    }

 

おすすめ

転載: www.cnblogs.com/yjc1605961523/p/11834375.html