SpringMVC多个文件上传及上传后立即显示图片功能

时间:2021-10-17 21:13:29

文件上传就是改良一个方法把MultipartFile类换成CommonsMultipartFile类,因为上传多个文件用数组方式的话MultipartFile类不能初始化,它不支持数组

?
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
30
31
32
package com.meng.upload;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
@Controller
public class upload {
  @RequestMapping(value="/upload",method=RequestMethod.POST)
  public String upload(@RequestParam("file1") CommonsMultipartFile[] file1, HttpServletRequest request) {
    for (CommonsMultipartFile commonsMultipartFile : file1) {
      try {
        File file = new File(request.getServletContext().getRealPath("upload"),
            System.currentTimeMillis() + "_"
                + commonsMultipartFile.getOriginalFilename());
        System.out.println(file.getPath()+"");
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        fileOutputStream.write(commonsMultipartFile.getBytes());
        fileOutputStream.close();
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    return "ok";
  }
}

index.jsp页面上传立即显示图片

?
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
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>My JSP 'index.jsp' starting page</title>
  <script type="text/javascript">
  //判断浏览器是否支持FileReader接口
  if (typeof FileReader == 'undefined') {
    alert("<h1>当前浏览器不支持FileReader接口</h1>");
  }
  //选择图片,马上预览
  function xmTanUploadImg(obj) {
    var file = obj.files[0];
    var reader = new FileReader();
    reader.onload = function(e) {
      var img = document.getElementById("img1");
      img.src = e.target.result;
    }
    reader.readAsDataURL(file);
  }
  </script>
 </head>
 <body>
  <form action="upload.upload" method="post" enctype="multipart/form-data">
    file1::<input type="file" name="file1" accept=".jpg,.png" onchange="xmTanUploadImg(this)" />
    <input type="submit" />
    <img id="img1" />
  </form>
 </body>
</html>

总结

以上所述是小编给大家介绍的SpringMVC多个文件上传及上传后立即显示图片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://blog.csdn.net/william_hof/article/details/78221405