ファイルのアップロードは、インターネット上の一般的なシナリオの1つです。最も典型的な状況は、アバターなどをアップロードすることです。今日、私はあなたをSpring Bootでアップロードする小さなケースを実行します。
1。POMパッケージの構成
Spring Bootの最新バージョン1.5.9を使用して、JDKは1.8、Tomcat8.0を使用します。
<Parent> <groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <バージョン> 1.5.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.バージョン> 1.8 </java.version> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-web </artifactid> </dependency> <dependency> springframework.boot </groupid> <artifactid> spring-boot-starter-thyleaf </artifactid> </artifactid> </artifactid> <GroupId> org.springframework.boot </groupid> <artifactid> spring-boot-devtools </artifactid> <optional> true </optional> </dependency> </dependencies>
Spring-Boot-Starter-Thymeleafは、ページテンプレートエンジンとして導入され、簡単なアップロードの例を記述します。
2。起動クラスの設定
@SpringBootApplicationPublic class fileuploadwebapplication {public static void main(string [] args)throws exception {springApplication.run(fileuploadwebapplication.class、args); } // tomcat大ファイルアップロード接続リセット@bean public public tomcatembeddedservletcontainerfactory tomcatembeded(){tomcatembededservletcontainerfactory tomcat = new tomcatembeddedservletcontainefactory(); tomcat.addconnectorcustomizers((tomcatconnectorcustomizer)connector-> {if((connector.getProtocolhandler()abstacthttp11protocol <?)のインスタンス{// -1は無限((abststracthtttp11protocol <? connector.getProtocolhandler())。 Tomcatを返します。 }}TomCatembeddedコードは、10mを超えるファイルをアップロードするときに接続リセットの問題を解決するためです。この例外コンテンツは、GlobalExceptionによってもキャプチャされません。
詳細なコンテンツリファレンス:Tomcat大ファイルアップロード接続リセット
3.フロントエンドページを書きます
ページをアップロードします
<!doctype html> <html xmlns:th = "http://www.thymeleaf.org"> <body> <h1> spring bootファイルアップロード例</h1> <form method = "post" action = "/upload" enctype = "multipart/> file"> <入力タイプ= < type = "submit" value = "submit"/> </form> </body> </html>
非常に単純な投稿リクエスト、ファイルを選択するための選択ボックス、および送信ボタン、効果は次のとおりです。
結果表示ページをアップロードします:
<!doctype html> <html lang = "en" xmlns:th = "http://www.thymeleaf.org"> <body> <h1> spring boot-アップロードステータス</h1> <div th:if = "$ {message}"> <h2 th:text = "$ </ht </</</</</</</<レンダリングは次のとおりです。
4.コントロールのアップロードクラスを書き込みます
LocalHostにアクセスして、アップロードページに自動的にジャンプします。
@getMapping( "/")public string index(){return "upload";}サービス処理をアップロードします
@postmapping( "/upload")public string singleFileupload(@RequestParam( "file")multipartfile file、redirectattributes redirectattributes){if(file.isempty()){redirectattributes.addflashattribute( "メッセージ")、 "ファイルを選択してください"); "redirect:uploadstatus"を返します。 } try {//ファイルを取得して、byte [] bytes = file.getBytes(); PATH PATH = PATHS.GET(uploaded_folder + file.getoriginalFileName()); files.write(path、bytes); Redirectattributes.addflashattribute( "Message"、 "Your Your Your Your Your custerfully Uploaded '" + file.getoriginalFileName() + "'"); } catch(ioexception e){e.printstacktrace(); } "redirect:/uploadstatus";}を返します上記のコードは、ファイル情報がMultiPartFileを介して読み取られることを意味します。ファイルが空の場合は、結果ページにジャンプしてプロンプトを提供します。ファイルストリームが空でない場合、指定されたディレクトリに書き込まれた場合、結果はページに表示されます。
MultiPartFileは、バイナリストリームやファイル属性などの情報を含むSpringアップロードされたファイルのカプセル化クラスです。関連する属性は、構成ファイルで構成することもできます。基本的な構成情報は次のとおりです。
spring.http.multipart.enabled=true #Default supported file upload.spring.http.multipart.file-size-threshold=0 #Support file writing to disk.spring.http.multipart.location= # Temporary directory for uploading files spring.http.multipart.max-file-size=1Mb # Maximum supported file size spring.http.multipart.max-request-size = 10mb#最大サポートリクエストサイズ
最も一般的に使用されるのは、ファイルのアップロードサイズを制限する最後の2つの構成コンテンツです。ファイルがサイズを超えた場合、アップロード時に例外がスローされます。
その他の構成情報については、こちらを参照してください:一般的なアプリケーションプロパティ
5。例外処理
@ControllerAdvicePublic Class GlobalExceptionHandler {@exceptionHandler(multipartexception.class)public string handleerror1(multipartexception e、redirectattributes redirecttributes.addflashattribute( "message"、e.getcause()。 "redirect:/uploadstatus"を返します。 }}@ControllerAdviceを設定して、MultiPartによってアップロードされたファイルサイズが制限されているかどうかを監視します。この例外が発生すると、プロンプトがフロントエンドページに与えられます。グローバルな統一例外処理など、@ControllerAdviceを使用して多くのことを行うことができます。興味のある学生は、それについて学ぶために降りてくることができます。
6。概要
Spring Bootを使用してファイルをアップロードするこの簡単なデモが完了しました。興味のある学生はサンプルコードをダウンロードして試してみてください。
参照:
サンプルコード-Github
サンプルコードコードクラウド
要約します
上記は、編集者がSpring Bootファイルアップロード機能を使用して紹介したものです。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!