SpringMVCのファイルのアップロードとダウンロードの問題
16061 ワード
SpringMVCのファイルのアップロードとダウンロードの問題
一、ファイルのアップロード
1、コンダクタンス
Spring MVCのファイルアップロードはAppacheのFileUploadコンポーネントに依存します.
1.フォームのmethod属性はpostに設定されており、getメソッドは使用できません.2.フォームのenctype属性はmultiiprt/form-dataに設定されています.マルチメディアファイルです.
3、springmvcを配置してファイルアップロードをサポートします.
クライアントフォームのenctype属性がmultiiPad/form-dataの場合、ブラウザはフォームデータをバイナリフローで処理し、サーバー側はファイルアップロードの要求を解析処理します.SpringMVCはファイルアップロードに直接的なサポートを提供しています.このサポートはMultiiprtResolaverのオブジェクトを通じて実現されます.MultiiprtResoloverはインタフェースの対象であり、その実装を通じてCommons MultiiprtResolaverのファイルアップロード作業を完了する必要があります.Spring MVCではMitipartResoloverオブジェクトを使用するのは非常に簡単です.配置ファイルにMultiiprtResolaverインターフェースを定義するBeanだけでいいです.
maxUploadSize:アップロードファイルの最大サイズ(バイト単位.)maxInMemorySize:キャッシュ中の最大サイズです.default Enccoding:デフォルトのコードフォーマットです.UTF-8.reolveLazily:ファイル解析を遅らせる
4、controllerを作成する
ファイルのダウンロードとは、ファイルサーバのファイルを本機にダウンロードすることです.
1、jspコード
設定ファイルにメッセージ変換器が配置されています.ファイルをダウンロードするとファイルサイズが大きくなります.開けられません.byteのアレイ変換器を配置する必要があります.具体的な操作は以下の通りです.
一、ファイルのアップロード
1、コンダクタンス
Spring MVCのファイルアップロードはAppacheのFileUploadコンポーネントに依存します.
<dependency>
<groupId>commons-fileuploadgroupId>
<artifactId>commons-fileuploadartifactId>
<version>1.3.3version>
dependency>
2、jspファイルを準備する
説明:1.フォームのmethod属性はpostに設定されており、getメソッドは使用できません.2.フォームのenctype属性はmultiiprt/form-dataに設定されています.マルチメディアファイルです.
3、springmvcを配置してファイルアップロードをサポートします.
クライアントフォームのenctype属性がmultiiPad/form-dataの場合、ブラウザはフォームデータをバイナリフローで処理し、サーバー側はファイルアップロードの要求を解析処理します.SpringMVCはファイルアップロードに直接的なサポートを提供しています.このサポートはMultiiprtResolaverのオブジェクトを通じて実現されます.MultiiprtResoloverはインタフェースの対象であり、その実装を通じてCommons MultiiprtResolaverのファイルアップロード作業を完了する必要があります.Spring MVCではMitipartResoloverオブジェクトを使用するのは非常に簡単です.配置ファイルにMultiiprtResolaverインターフェースを定義するBeanだけでいいです.
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000">property>
<property name="defaultEncoding" value="UTF-8">property>
bean>
説明:maxUploadSize:アップロードファイルの最大サイズ(バイト単位.)maxInMemorySize:キャッシュ中の最大サイズです.default Enccoding:デフォルトのコードフォーマットです.UTF-8.reolveLazily:ファイル解析を遅らせる
4、controllerを作成する
@RequestMapping("fileupload")
// @RequestParam("") file jsp name
public String FileUpload(@RequestParam("file") MultipartFile multipartFile) throws IOException {
//
String fileName=multipartFile.getOriginalFilename();
System.out.println(fileName);
// ( )
multipartFile.transferTo(new File("C:\\Users\\Administrator\\Desktop\\2.jpg"));
return "index.jsp";
}
二、ファイルのダウンロードファイルのダウンロードとは、ファイルサーバのファイルを本機にダウンロードすることです.
1、jspコード
2、作成controller @RequestMapping("filedownload")
public ResponseEntity<byte[]> fileDownload() throws IOException {
//
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("content-Disposition","attachment;filename=ss.jpg");
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(new File("C:\\Users\\Administrator\\Desktop\\2.jpg")),httpHeaders, HttpStatus.OK);
}
3、ファイルをダウンロードすると大きな問題になります.設定ファイルにメッセージ変換器が配置されています.ファイルをダウンロードするとファイルサイズが大きくなります.開けられません.byteのアレイ変換器を配置する必要があります.具体的な操作は以下の通りです.
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter">bean>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="utf-8">constructor-arg>
bean>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="defaultCharset" value="utf-8">property>
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8value>
<value>application/jsonvalue>
list>
property>
bean>
mvc:message-converters>
mvc:annotation-driven>