一、今天我们所说的是基于SpringMVC的关于文件的上传和下载的问题的解决。(这里所说的上传和下载都是上传到服务器与从服务器上下载文件)。这里的文件包括我们常用的各种文件。如:文本文件(.txt),word文件(.doc),图片文件(.png .jpg等),歌曲文件(.mp3等)以及视频文件(.mp4等)等各种类型的文件。
下面让我们一步一步的来实现它。
二、首先我们需要导入一些jar包。如图所示:
即在WEB-INF下的lib文件夹下导入圈起的三个jar包。
三、我们来建立一个简单名字为upload的jsp页面,并加入一个表单。如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>Insert title here
这里有一个需要我们注意的问题,就是form表单的enctype属性一定要改成multipart/form-data。否则的话,我们无法进行文件的上传。
四、我们需要在控制层写一个方法
@RequestMapping(value="/upload",method=RequestMethod.POST) public String testUpload(HttpServletRequest request,@RequestParam(value="name",required=false) String desc,@RequestParam(value="file") CommonsMultipartFile file) throws Exception{ System.out.println(desc); ServletContext servletContext = request.getServletContext(); String realPath = servletContext.getRealPath("/upload"); File file1 = new File(realPath); if(!file1.exists()){ file1.mkdir(); } OutputStream out; InputStream in; String prefix = UUID.randomUUID().toString(); prefix = prefix.replace("-",""); String fileName = prefix+"_"+file.getOriginalFilename(); System.out.println(fileName); out = new FileOutputStream(new File(realPath+"\\"+fileName)); in = file.getInputStream(); IOUtils.copy(in, out); out.close(); in.close(); return "/WEB-INF/success.jsp"; }
这里面最 后返回的是WEB-INF下面的一个jsp页面。
五、在SpringMVC的配置文件里加入以下的配置:
第一个<property></property>是设置编码;第二个<property ></property>是设置上传文件的大小,这里我们指定的大小是5000000个字节。
六、建立一个名字为success的jsp页面。(随便写点东西就行)
七、我们从upload页面开始运行,然后选择文件,就会将你的文件上传到你本机的服务器上。如图所示:
我们在相应的文件夹下就能够找到你所上传的文件。