SpringMVC書かれたシンプルなテンプレートベースのダウンロードをアップロード

<%- 
  のIntelliJ IDEAによって作成されます。
  ユーザー:13554 
  日付2019年/ 12 / 23 
  時間22 16 
  にするにこのテンプレートを使用するファイルを変更します| 設定| ファイルのテンプレート。
- %> 
<%@ページのcontentType = " text / htmlの;のcharset = UTF-8 " 言語= " javaの"  %> 
< htmlの> 
< ヘッド> 
    < タイトル>タイトル</ タイトル> 
</ヘッド> 
< 身体> 
    < A HREF = "ダウンロード?fileNameに= A.TXT" >下载</ A > 
</ ボディ> 
</ HTML >

ダウンロードインターフェース

ファイルのダウンロードの主な方法

バイト[]バイト= FileUtils.readFileToByteArray(ファイル)。
        outputStream.write(バイト)。
パッケージcom.qyx.controller。
輸入org.apache.commons.io.FileUtils。
輸入org.springframework.stereotype.Controller;
輸入org.springframework.ui.Model;
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.multipart.MultipartFile;
インポートのjavax.servlet.ServletOutputStream。
インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse;
インポートのjava.io.File;
インポートにjava.io.IOException;
輸入java.util.UUID; 

@Controller 
パブリック クラスDemoController { 
    @RequestMapping( "/ダウンロード" 公共 ボイドダウンロード(文字列のファイル名、HttpServletResponseの応答、HttpServletRequestのリクエスト)がスローにIOException { 
        response.setContentType( "テキスト/ HTML;のcharset = UTF-8" )。
        // 设置响应流中的文件进行下载
         // response.setHeader( "コンテンツ・処分"、 "添付ファイル;ファイル名" + fileNameに)。
        response.setHeader( "コンテンツの廃棄"、 "添付ファイル;ファイル名=" + filename)で。
        // ServletOutputStreamを出力ストリーム= response.getOutputStream()。
        ServletOutputStreamをOutputStreamを= 応答。
        // 获取文件完整路径(绝对路径)
         // 文字列のrealpath = request.getServletContext()getRealPath( "ファイル")。
        文字列のrealpath = request.getServletContext()getRealPath( "ファイル"。);
        // ファイルファイル=新しいファイル(実パスファイル名); 
        ファイルファイル= 新しいファイル(実パスファイル名);
        // バイト[]バイト= FileUtils.readFileToByteArray(ファイル)。
        バイト []バイト= FileUtils.readFileToByteArray(ファイル)。
        outputStream.write(バイト)。
        outputStream.flush(); 
        outputStream.close(); 
    } 
}

制御ファイルは、コントローラーをダウンロード

<%- 
  のIntelliJ IDEAによって作成されます。
  ユーザー:13554 
  日付2019年/ 12 / 25 
  時間16 48 
  にするにこのテンプレートを使用するファイルを変更します| 設定| ファイルのテンプレート。
- %> 
<%@ページのcontentType = " text / htmlの;のcharset = UTF-8 " 言語= " javaの"  %> 
< htmlの> 
< ヘッド> 
    < タイトル>タイトル</ タイトル> 
</ヘッド> 
< 身体> 
<! - 需要设置にenctype = "multipart / form-データ"才能进行文件上传- > 
< フォームのメソッド= "ポスト" のenctype = "マルチパート/フォームデータ" アクション= "アップロード" > 
    姓名:< 入力タイプ= "テキスト" 名前= "名前" > 
    文件:< 入力タイプ= "ファイル" = "ファイル" > 
    < 入力タイプ= "提出" = "を提交" > 
</ フォーム> 
</ ボディ>
</ HTML >
パッケージcom.qyx.controller。
輸入org.apache.commons.io.FileUtils。
輸入org.springframework.stereotype.Controller; 
輸入org.springframework.ui.Model;  輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.multipart.MultipartFile; インポートのjavax.servlet.ServletOutputStream。インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; インポートのjava.io.File; インポートにjava.io.IOException; 輸入java.util.UUID; @ControllerパブリッククラスDemoController {
@RequestMapping( "/アップロード" 
  
公共の文字列のアップロード(MultipartFileファイルは、文字列名)がスローIOExceptionが{ // 文字列fileNameに= file.getOriginalFilename(); 文字列fileNameに= file.getOriginalFilename()。 // 文字列の接尾辞= fileName.substring(fileName.lastIndexOf() ""); 文字列の接尾辞= fileName.substring(fileName.lastIndexOf( "" )); もし(suffix.equalsIgnoreCase( "TXT" )) { // 为防止文件重名而设置的随机ID 列UUID = UUID.randomUUID()のtoString()。 FileUtils.copyInputStreamToFile(file.getInputStream()、新しいですファイル( "E:/" + UUID + サフィックス)); 戻る「成功」 } リターン「エラー」 }
}

ファイルのアップロード

1 Apacheのファイルのアップロードの完了に基づいて、コモン-fileupload.jar
2 MultipartResovler役割
2.1クライアントはMultipartFileにファイル転送パッケージタイプアップロード
クラスファイルストリームが取得した2.2 MultipartFileパッケージ
3フォームデータ型の分類
3.1のenctype属性管理テーブルの形式を「マルチパート/フォームデータ」の種類

4 MultipartFileコントローラパラメータ名は、入力ファイル名タグの属性値と一致しなければなりません

5コアファイルのアップロード方法

 FileUtils.copyInputStreamToFile(のInputStream、ファイル);

おすすめ

転載: www.cnblogs.com/qyx66/p/12109708.html