序文
前のセクションでは、我々はの使用説明
模版引擎
動的なWebページの機能を実行するために、フロントページのレンダリングの実現をするだけでなく、互換性のある製のjsp
ソリューションのプロジェクトを。それは、Web開発を説明するために始めた、と私たちは、その後に向けて継続しますのでweb
、それを継続し、この方向。一般的に、我々がやっているweb
の開発を、写真のアップロード写真をアップロードし、そのような添付ファイルのアップロードと出会い、その他の文書の需要も完全に正常です。そこで、我々は今日について何かを言っているSpringBoot
の下に文件上传
実装関数。
少しの知識
私たちは時にファイルをアップロードのフロントエンド、最も一般的なの使用であることを知っているForm
ファイルをアップロードファッションの形、およびアップロード設定enctype
にmultipart/form-data
、または直接使用しjquery
、いくつかのアップロードプラグインを実装します。バックエンドは、でjsp+Servlet
倍、最も一般的なのは、使用することですsmartupload
アップロードコンポーネントを。でSpringMvc
提供しているの時代MultipartFile
パッケージタイプ、ファイルと関連する属性(ファイル名、サイズなど)を含むバイナリストリームを。したがって、SpringBoot
このクラスのパッケージファイルのアップロードインチ
ファイルをアップロード
それは上記に来るとき、
springmvc
それが使用されMultipartFile
、ファイルのアップロードのために。そして、MultipartFile
インタフェースクラスで、その実装クラスがありCommonsMultipartFile
とStandardMultipartFile
。ここでは簡単な説明は次の通りです。
StandardMultipartFile:に基づいておりj2ee
、アップロードファイルの解析には使用がいることを、来Servlet3.0
てjavax.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呼び出しを行うことができます。
途中に基づいての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.enabled
にfalse
。
この例では、スイッチの二種類は、第二のために使用することができます。
3.書き込み制御層:このJ2EE
方法は同じですが、そこに掲載されていません。
4.以下の郵便配達の訪問を使用して、アプリケーションを起動します。
関連情報
概要
この章では、主にファイルをアップロードする2つの方法を説明しています。ここで設定し、いくつかのノートの2つの方法の簡単な紹介は、ファイルサイズが例外をキャッチしすぎると、あなたは、キャプチャのみキャプチャするためにグローバル例外クラスを使用することができますようだった
MultipartException
し、ここでの相対的な例である例外をそれはかなり単純です。
遂に
現在、インターネット上で大物の多くの持っている
SpringBoot
チュートリアルのシリーズを、任意の類似性は、私を許してください。本論文では、すべてのステップが実践され、コンピュータのノックの前に単一の単語です。また、テキストに誤ったが、何かがなさ見ると、あなたに感謝します。
オリジナル住所:のhttp://www.importnew.com/29795.html