アプリケーション開発ファイルのアップロード--web SpringBoot

序文

前のセクションでは、我々はの使用説明模版引擎動的なWebページの機能を実行するために、フロントページのレンダリングの実現をするだけでなく、互換性のある製のjspソリューションのプロジェクトを。それは、Web開発を説明するために始めた、と私たちは、その後に向けて継続しますのでweb、それを継続し、この方向。一般的に、我々がやっているwebの開発を、写真のアップロード写真をアップロードし、そのような添付ファイルのアップロードと出会い、その他の文書の需要も完全に正常です。そこで、我々は今日について何かを言っているSpringBootの下に文件上传実装関数。

少しの知識

私たちは時にファイルをアップロードのフロントエンド、最も一般的なの使用であることを知っているFormファイルをアップロードファッションの形、およびアップロード設定enctypemultipart/form-data、または直接使用しjquery、いくつかのアップロードプラグインを実装します。バックエンドは、でjsp+Servlet倍、最も一般的なのは、使用することですsmartuploadアップロードコンポーネントを。SpringMvc提供しているの時代MultipartFileパッケージタイプ、ファイルと関連する属性(ファイル名、サイズなど)を含むバイナリストリームを。したがって、SpringBootこのクラスのパッケージファイルのアップロードインチ

ファイルをアップロード

それは上記に来るとき、springmvcそれが使用されMultipartFile、ファイルのアップロードのために。そして、MultipartFileインタフェースクラスで、その実装クラスがありCommonsMultipartFileStandardMultipartFileここでは簡単な説明は次の通りです。


StandardMultipartFile:に基づいておりj2ee、アップロードファイルの解析には使用がいることを、来Servlet3.0javax.servlet.http.Partアップロードを。

CommonsMultipartFileは:基づいているapache fileupload解像度。


だから我々が通常使用している場合、だけでなく、根本的な関係は、アップロード処理を提出する必要はありませんどの方法で、SpringMvc我々は適切な変換を行います。

ここでは2つの方法でデモンストレーション。

J2EE独自の方法に基づいて、

このように、実際には、任意の構成なし。ただ、通常のWeb開発プロジェクトを統合することができます。

0.pom依存性

1
2
3
4
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
</dependency>

1.(オプション)設定ファイルは、通常のみアップロードするファイルのサイズを設定する必要があります

1
2
3
4
# 最大支持文件大小 即单个文件大小
spring.http.multipart.max-file-size=1Mb
# 最大支持请求大小 即一次性上传的总文件大小
spring.http.multipart.max-request-size=10Mb

他の構成の構成情報が直接、公式ウェブサイトを参照することができます。https://docs.spring.io/spring-boot/docs/1.5.15.RELEASE/reference/htmlsingle/#common-application-properties
他の構成

2.書き込み制御クラス

FileUploadController.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@RestController
@Slf4j
public class FileUploadController {
 
     @PostMapping ( "/upload" )
     public String upload( @RequestParam MultipartFile file) throws IllegalStateException, IOException {
         // 判断是否为空文件
         if (file.isEmpty()) {
             return "上传文件不能为空" ;
         }
         // 文件类型
         String contentType = file.getContentType();
         // springmvc处理后的文件名
         String fileName = file.getName();
         log.info( "服务器文件名:" + fileName);
         // 原文件名即上传的文件名
         String origFileName = file.getOriginalFilename();
         // 文件大小
         Long fileSize = file.getSize();
 
         // 保存文件
         // 可以使用二进制流直接保存
         // 这里直接使用transferTo
         file.transferTo( new File( "d://okong-" + origFileName));
 
         return String.format(file.getClass().getName() + "方式文件上传成功!\n文件名:%s,文件类型:%s,文件大小:%s" , origFileName, contentType,fileSize);
 
     }
}

3.アプリケーションを起動し、使用しpostman、もちろん、我々はまた、ファイルアップロードフォームを作成し、教訓を学ぶ上でテンプレートエンジンの技術を使用することができ、API呼び出しを行うことができます。

J2EEの道

途中に基づいてのFileUploadパッケージ

オリジナルではSpringmvc、我々は通常使用しCommonsMultipartResolver、このような最大アップロードファイルサイズなど、ファイルアップロードハンドラクラスコンフィギュレーションのために。とに基づいSpringBoot下、わずかに異なります。

0.pom参加fileUpload依存性を

1
2
3
4
5
<dependency>
     <groupId>commons-fileupload</groupId>
     <artifactId>commons-fileupload</artifactId>
     <version> 1.3 . 3 </version>
</dependency>

コンフィギュレーション・クラスの調製
FileUploadConfig.java

1
2
3
4
5
6
7
8
@Configuration
public class FileUploadConfig {
     
     @Bean
     public MultipartResolver custom() {
         return new CommonsMultipartResolver();
     }
}

2.としてspring.http.multipart.enabled、デフォルトtrue、ロードされたクラスがMultipartAutoConfiguration自動的にロードされますので、異常のFileUploadます。したがって、2つの方法が通常あります。この設定クラスのクラスでは自動ロードを開始しません。

1
@EnableAutoConfiguration (exclude = {MultipartAutoConfiguration. class })

もう一つは、直接、あるspring.http.multipart.enabledfalse
この例では、スイッチの二種類は、第二のために使用することができます。

3.書き込み制御層:このJ2EE方法は同じですが、そこに掲載されていません。
4.以下の郵便配達の訪問を使用して、アプリケーションを起動します。

ファイルアップロード

関連情報

  1. https://docs.spring.io/spring-boot/docs/1.5.15.RELEASE/reference/htmlsingle/

概要

この章では、主にファイルをアップロードする2つの方法を説明しています。ここで設定し、いくつかのノートの2つの方法の簡単な紹介は、ファイルサイズが例外をキャッチしすぎると、あなたは、キャプチャのみキャプチャするためにグローバル例外クラスを使用することができますようだったMultipartExceptionし、ここでの相対的な例である例外をそれはかなり単純です。

遂に

現在、インターネット上で大物の多くの持っているSpringBootチュートリアルのシリーズを、任意の類似性は、私を許してください。本論文では、すべてのステップが実践され、コンピュータのノックの前に単一の単語です。また、テキストに誤ったが、何かがなさ見ると、あなたに感謝します。

オリジナル住所:のhttp://www.importnew.com/29795.html

おすすめ

転載: www.cnblogs.com/jpfss/p/10967861.html