multipartfile 非必传_MultipartFile(文件的上传)

摘自:https://www.cnblogs.com/896240130Master/p/6430908.html

https://blog.csdn.net/kouwoo/article/details/40507565

注意:单文件MultipartFile file

多文件(定义为数组形式)MultipartFile[] file

判断文件是否为空:!file.isEmpty() -- 不为空

文件保存路径 :String filePath = request.getSession().getServletContext().getRealPath("/")

+ "upload/" + file.getOriginalFilename();

上传文件原名:file.getOriginalFilename();

转存文件 :file.transferTo(new File(filePath));

步骤:1、创建一个控制类

2、编写提交表单的action

3、使用SpringMVC注解RequestParam来指定表单中的file参数;

4、指定一个用于保存文件的web项目路径

5、通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。

MultipartResolver其中属性详解:

defaultEncoding="UTF-8" 是请求的编码格式,默认为iso-8859-1

maxUploadSize="5400000" 是上传文件的大小,单位为字节

uploadTempDir="fileUpload/temp" 为上传文件的临时路径

1

2

文件上传实例

3

4

5

6 选择文件:

7

8

9

10

11

View Code

注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件的,input的type属性的属性值设为file,

标签中属性type的值为file,且name属性的值为myFile,之所以需要name属性值,是因为在使用接口MultipartHttpServletRequest的getFile方法时需要使用name属性的值。例如在清单7-33中,代码中的upload操作会从请求中读取上传文件。

读取上传文件

def upload = {

def file = request.getFile('myFile')

// 处理该文件

}

注意getFile方法不会返回一个java.io.File的实例,而是返回org.springframework.web. multipart.MultipartFile的一个实例,关于org.springframework.web.multipart.MultipartFile的详细信息,请参考清单7-34。如果在请求中没有找到文件则getFile方法返回null。

清单7-34 org.springframework.web.multipart.MultipartFile接口

1 interfaceMultipartFile {2

3 public byte[] getBytes();4

5 publicString getContentType();6

7 publicjava.io.InputStream getInputStream();8

9 publicString getName();10

11 publicString getOriginalFilename();12

13 public longgetSize();14

15 public booleanisEmpty();16

17 public voidtransferTo(java.io.File dest);18

19 }

View Code

1 @RequestMapping("fileUpload")2 public String fileUpload(@RequestParam("file") MultipartFile file) {3 //判断文件是否为空

4 if (!file.isEmpty()) {5 try{6 //文件保存路径

7 String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"

8 +file.getOriginalFilename();9 //转存文件

10 file.transferTo(newFile(filePath));11 } catch(Exception e) {12 e.printStackTrace();13 }14 }15 //重定向

16 return "redirect:/list.html";17 }

View Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值