Springmvc文件上传/下载
2017-09-13 11:08
357 查看
Springmvc文件上传:
CommonsMultipartResolver类<form >表当中enctype=“”application/x-www-form-urlencoded” 该默认的属性是按照字符流读取的。文件上传需要使用字节流读取
怎我们需要更改一下enctype属性的类型。更改值,将enctype=”multipart/form-data” 这样就是照字节流读取了。
1. 导入jar:apache下的fileupload.jar ,io.jar
2. 创建jsp页面
<form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="upload"/> </form> |
@RequestMapping("upload") public String upload(MultipartFile file) throws IllegalStateException, IOException{ // 取得到文件名 System.out.println(file.getOriginalFilename()); // 文件的类型 可以加以对上传的文件类型进行限制! System.out.println(file.getContentType()); //image/jpeg String filename = file.getOriginalFilename(); // 要知道文件保存的路径 file.transferTo(new File("F:/"+filename)); return "up"; } |
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置字符集 --> <property name="defaultEncoding" value="utf-8"></property> <!-- 限制文件上传的大小 单位byte--> <property name="maxUploadSize"< 4000 /em> value="102400"></property> <!-- 设置内存大小 单位byte --> <property name="maxInMemorySize" value="15000"></property> </bean> |
6. 上传文件的时候,可能遇到的问题!解决方案:参考4
1) 可能会出现中文乱码!
2) 会出现文件大小限制!
7. 配置错误页面信息在web.xml
<error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page> |
Springm文件下载
Springmvc没有对文件下载提供特殊的方式,这里的文件下载跟我们的servlet的文件下载是一样的!文件下载:有的浏览会自动带下载功能! 当点击下载的时候,如果能在浏览器上显示,则显示。如果下载的资源在浏览器上不能显示,则默认就是下载!
设置头部信息:response.setHeader("Content-Disposition","attachment; filename=\"" +fileName + "\"");
*用文件下载的时候,可以选用缓冲流的。好处:可以提高程序性能!
Jsp页面
<form action="download" method="post" enctype="multipart/form-data"> <input type="submit" value="download"/> </form> |
@RequestMapping("download") public void download(HttpServletRequest request,HttpServletResponse response) throws Exception{ //1.要知道下载的文件 File file = new File("F:/gaoyy.jpg"); //2.使用io流中的FileInputStream来读取文件 FileInputStream is = new FileInputStream(file); //3.创建一个ServletOutputStream对象,使用response.getOutputStream(); ServletOutputStream os = response.getOutputStream(); //4.给下载文件起个别名,为什么?使用时间 String fileName = new SimpleDateFormat("yyyy-MM-dd").format(new Date())+".jpg"; //5.设置下载响应头信息文件下载的响应头 response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); //6.通过io流的方式进行循环读取进行下载! // 创建一个字节数组吧 字符串的长度.length(), 数组.length, 集合size(), 文件长度.length() byte [] length = new byte[(int) file.length()]; int len = 0; // 将字节数组放到is中。 while ((len = is.read(length))!=-1) { os.write(length, 0, len); } os.flush(); os.close(); is.close(); } |
相关文章推荐
- SSM框架-SpringMVC 实例文件上传下载
- SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)
- springmvc文件上传和文件下载
- springmvc实现文件上传和下载
- springmvc和servlet下的文件上传和下载(存文件目录和存数据库Blob两种方式)
- springmvc实现文件上传下载
- springMVC文件上传和下载
- 基于springmvc的文件上传与下载
- springMVC教程(九)springMVC的文件上传于下载
- SpringMVC的文件上传下载
- springmvc文件上传下载简单实现案例(ssm框架使用)
- SpringMVC之文件上传和下载
- SpringMVC下Excel文件的上传下载实现
- springMVC学习笔记---文件的上传和下载
- springMVC文件的上传与下载
- MyBatis与SpringMVC相结合实现文件上传、下载功能
- SpringMVC---实现文件上传与下载
- SpringMVC实现文件上传与下载
- springmvc 文件上传, 文件下载
- SpringMVC文件上传与下载