MultipartFile(⽂件的上传)
注意:单⽂件MultipartFile file
   多⽂件(定义为数组形式)MultipartFile[] file
判断⽂件是否为空:!file.isEmpty() -- 不为空
⽂件保存路径:String filePath = Session().getServletContext().getRealPath("/")
               + "upload/" + OriginalFilename();
上传⽂件原名:OriginalFilename();
转存⽂件:ansferTo(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 <body>
2 <h2>⽂件上传实例</h2>
3
4
5 <form action="fileUpload.html" method="post" enctype="multipart/form-data">
inputtypefile不上传文件
6选择⽂件:<input type="file" name="file">
7    <input type="submit" value="提交">
8 </form>
9
10
11 </body>
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 = File('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接⼝
1interface MultipartFile {
2
3public byte[] getBytes();
4
5public String getContentType();
6
7public java.io.InputStream getInputStream();
8
9public String getName();
10
11public String getOriginalFilename();
12
13public long getSize();
14
15public boolean isEmpty();
16
17public void transferTo(java.io.File dest);
18
19 }
View Code
1    @RequestMapping("fileUpload")
2public String fileUpload(@RequestParam("file") MultipartFile file) {
3// 判断⽂件是否为空
4if (!file.isEmpty()) {
5try {
6// ⽂件保存路径
7                String filePath = Session().getServletContext().getRealPath("/") + "upload/"
8                        + OriginalFilename();
9// 转存⽂件
10                ansferTo(new File(filePath));
11            } catch (Exception e) {
12                e.printStackTrace();
13            }
14        }
15// 重定向
16return "redirect:/list.html";
17    }
View Code

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。