春のブートファイルのダウンロード

1.ファイルのクラスをダウンロード

インポートのjavax.servlet.http.HttpServletResponse;
 輸入 java.io. * ; 

パブリック クラスDownloadUtil { 

    パブリック ブールはFileDownload(HttpServletResponseの応答、文字列filePathに、文字列filename)が
         スローにUnsupportedEncodingException { 
        
        ファイルファイル = 新しい新しいファイル(filePathにする); // ダウンロードを作成します真のパスオブジェクト・ファイル、パラメータファイル
        のiF(File.Exists()){ // ファイルが存在するか否かを判断 
            response.setContentTypeを( "ファイルアプリケーション/ vnd.ms-エクセル。;のcharset = UTF-8" ); 
            response.setCharacterEncoding( " 。8 UTF " ); 
            response.setHeader("コンテンツの廃棄"、 "添付; fileNameに=" + java.net.URLEncoder.encode(ファイル名、 "UTF-8" ));
            バイト []バッファ= 新しい バイト [1024 ]; 
            FileInputStreamのFIS = nullを// 文件输入流 
            にBufferedInputStreamビス= NULL ; 

            OutputStreamのOS = nullを// 输出流
            試み{ 
                OS = response.getOutputStream()。
                FIS = 新しいFileInputStreamを(ファイル); 
                ビス = 新しいですBufferedInputStreamを(FIS)。
                int型 I = bis.read(バッファ)
                一方、(!I = -1 ){ 
                    os.write(バッファ)
                    I = bis.read(バッファ)
                } 

            } キャッチ(例外e){ 
                e.printStackTrace(); 
                返す ; 
            } 
            試みる{ 
                bis.closeを(); 
                fis.close(); 
            } キャッチ(IOExceptionを電子){ 
                e.printStackTrace(); 
                返す  ;
            } 
        } 
        戻り 
    }

 

2.  ダウンロードタグ

< TH:HREF = "@ {/ダウンロード/ fileNameに} {} + $ + $ +} {filePathに'?filePathに='" >ダウンロードファイル</ A >

filePathには、とのシンボルパスので、実際のパスでRESTfulなAPIのスタイルが競合し、そのラベルの伝統的な方法の質量参加を取ります

 

3.コントローラ

/ ** 
     *测试文件下载
     * @paramのfileNameに
     * @param filePathに
     * @paramの応答
     * @return 
     *は@throws にUnsupportedEncodingException
      * / 
(@GetMapping "/ダウンロード/ {ファイル名}" パブリック文字列testDownload(@PathVariable( "FILENAME" )文字ファイル名、文字列filePathに、HttpServletResponseの応答)がスローにUnsupportedEncodingException { 

    するSystem.out.println( "==>开始文件下载を!" )。

    DownloadUtil downloadUtil = 新しいDownloadUtil();

    downloadUtil.fileDownload(応答ファイルパスは、ファイル名)。

    リターン ヌル
}

 

おすすめ

転載: www.cnblogs.com/lcsin/p/11705084.html