博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-文件上传
阅读量:5772 次
发布时间:2019-06-18

本文共 2949 字,大约阅读时间需要 9 分钟。

springmvc实现简单文件上传和下载

思路:1:maven导入common-fileupload包 

   2:springmvc.xml导入文件多分布解析器

   3:使用MultipartFile获取上传的文件名和转换此文件为服务器上面的指定目录下文件(上传的jsp必须为multipart/form-data,不然multipartfile获取的值为null)

   4:下载: 使用FileCopyUtils.copyToByteArray(file)将目标文件转换为二进制数组,设置响应头和下载的文件名称,构建ResponseEntity对象返回到浏览器

1

<dependency>

<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

2

<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"></property>
</bean>

jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page    
文件
下载

servlet代码

package com.crazy.goods.tools.fileupload;import java.io.File;import java.io.IOException;import java.net.URLEncoder;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.util.FileCopyUtils;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;/** * @author Administrator * 创建时间:2017年7月6日上午8:46:53 */@Controllerpublic class UploadServlet {    public String filePath="c:";    @RequestMapping(value="/upload")    public String upload(MultipartFile aa,HttpServletResponse response) throws IllegalStateException, IOException {        String originalFilename = aa.getOriginalFilename();//获取到的是文件的名字        String name = aa.getName(); //或者的是aa的值        String destFile = filePath+"/"+originalFilename;        aa.transferTo(new File(destFile)); //将文件转换为路径下面的文件        response.getWriter().println("upload sucess");        return null;            }    @RequestMapping(value="/upload1")    public  String  uploadpage() {        return "upload";    }    @RequestMapping(value="download")    public ResponseEntity
down(String fileName) throws IOException{ //需要下载的目标文件 File file=new File(filePath+"/"+fileName); //读取目标文件为二进制数组 byte[] fileByte=FileCopyUtils.copyToByteArray(file); //设置响应头 HttpHeaders hh=new HttpHeaders(); //设置下载的文件的名称 hh.setContentDispositionFormData("attachment", URLEncoder.encode(fileName, "UTF-8")); //构建ResponseEntity对象 ResponseEntity
re=new ResponseEntity
(fileByte, hh, HttpStatus.CREATED); return re; }}

 

转载于:https://www.cnblogs.com/wdx330616/p/7128213.html

你可能感兴趣的文章
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
苹果公司透露Siri新发音引擎的内部原理
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何成为一家敏捷银行
查看>>
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Ruby 2.5.0概览
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>
Apache下.htaccess文件配置及功能介绍
查看>>
Magento XML cheatsheet
查看>>
Egg 2.19.0 发布,阿里开源的企业级 Node.js 框架
查看>>
Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性 ...
查看>>
使用MySQLTuner-perl对MySQL进行优化
查看>>
Swoole 4.1.0 正式版发布,支持原生 Redis/PDO/MySQLi 协程化 ...
查看>>
开发网络视频直播系统需要注意的地方
查看>>
haproxy mysql实例配置
查看>>
强化学习的未来— 第一部分
查看>>
TableStore:用户画像数据的存储和查询利器
查看>>
2019 DockerCon 大会即将召开,快来制定您的专属议程吧!
查看>>