springmvcモードと接触した後、最後のアップロードとダウンロードの最適化、
最後に見てここに。
ここではアップロード機能はまだアップロードするためのフォームです。ファイル形式はまだあります
<フォームアクション= "$ {pageContext.request.contextPath} /アップロード" METHOD = "POST" のenctype = "マルチパート/フォームデータ">
背景があります
@RequestMapping( "/アップロード" ) パブリック文字列アップロード(MultipartFileファイル、文字列ユーザ名、HttpServletRequestのリクエスト)スローIOExceptionが{ 文字列filename = file.getOriginalFilename()。 文字列の接尾辞 = filename.substring(filename.lastIndexOf( "" )); もし(suffix.equalsIgnoreCase( "JPG" )){ UUID文字列 = UUID.randomUUID()のtoString();. // FileUtils.copyInputStreamToFile(file.getInputStream()、新新しいファイル( "E:// " + UUID +サフィックス)); file.transferTo(新しい新しいファイル(「D :// "+のSystem.currentTimeMillis()+サフィックス)); // 位置のハードディスクに保存されている // 。file.transferTo(新しい新しいファイル(request.getServletContext()getRealPath(" / ")+"静的/ userImages / "ファイル+)); // ディレクトリにプロジェクトに保存されている request.setAttribute(「結果」、「成功したアップロード」); リターン「/result.jsp」。 } 他{ request.setAttribute( "結果"、 "上传失败" )。 リターン「/result.jsp」。 } }
以前の伝統的なアップロードさと比較すると、モードspringmvcは、多くの退屈なプロセスをカプセル化し、いくつかの対応する操作で実現することができるtransferTo
ダウンロードは、適切な多くを簡素化
@RequestMapping( "/ダウンロード" ) 公共 ボイドダウンロード(文字列のファイル名、HttpServletResponseの応答、HttpServletRequestのリクエスト)がスローIOExceptionが{ response.setHeader( "コンテンツ配置"、 "添付ファイル;ファイル名=" + ファイル名)。 ServletOutputStreamを出力ストリーム = response.getOutputStream()。 文字列パス = request.getServletContext()getRealPath( "イメージ"。 )。 ファイルファイル = 新しいファイル(パス、ファイル名); バイト []バイト= FileUtils.readFileToByteArray(ファイル)。 outputStream.write(バイト)。 outputStream.close(); }
一般的なフレームワークは、反復作業の多くを保存しますが、プロセスの基礎となる基本原理またはクリアするだろう