栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC实现文件上传与下载

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC实现文件上传与下载

        基于JavaWeb实战开发中的Servlet实现文件上传和下载的操作,org.springframework:spring-webmvc依赖为SpringMVC提供了multipart解析器和MultipartFile的一些文件操作方法,使文件上传变得更加方便简单。

一搭建SpringMVC项目环境(IDEA)

首先我们要创建一个Maven工程,然后在Maven的pom.xml配置文件中把Maven项目打成war包,即我们所说的web工程。接着添加我们本工程所需要的依赖如下:

                ​​​​​​​        ​​​​​​​        ​​​​​​​       

之后我们便可以在该Maven工程下创建src/main/webapp,并对webapp进行配置得到webapp/WEB-INF/web.xml,然后就可以在web.xml文件中配置我们的DispatcherServlet中央处理器。init-param是我们将来要加载的配置文件,缓冲区是将来文件上传时缓冲的区域,需要手动在盘符底下创建文件。配置如下:

        ​​​​​​​        ​​​​​​​        

 因为将来我们需要用到SpringMVC容器中的bean对象,因此我们要在resource包底下新建一个xml文件我把他命名为spring-servlet.xml,然后我们配置我们的包扫描,把注解对象拿出来用。

        ​​​​​​​       

 配置如下:


 这里还需要文件上传解析器,注意,这个bean的名字一定要有,而且id必须叫multipartResolver。接下来在配置一个东西允许加载静态文件。



 download2(String filename) throws IOException {
        //要下载的文件位于该目录下
        String folder = "G:\千锋Java2108\File\File1";
        String filePath = folder + File.separator + filename;
        System.out.println("filePath = " + filePath);
        //输入流,读取文件
        FileInputStream fis = new FileInputStream(filePath);
        //输出流,将来读进来的文件存入一个 byte 数组中
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] bytes = new byte[1024];
        int len;
        while ((len = fis.read(bytes))!=-1){
            baos.write(bytes,0,len);
        }
        HttpHeaders headers = new HttpHeaders();
        headers.setContentDispositionFormData("attachment",new String(filename.getBytes("UTF-8"),"ISO-8859-1"));
        //1.响应体,就是 一个byte 数组
        //2.响应头
        //3.http 响应状态码
        return new ResponseEntity<>(baos.toByteArray(),headers, HttpStatus.CREATED);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号