前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >springmvc文件上传/下载

springmvc文件上传/下载

作者头像
微醺
发布于 2019-01-17 04:46:19
发布于 2019-01-17 04:46:19
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

文件上传

1,配置文件上传解析器

在springmvc-servlet.xml中配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为1MB -->
        <property name="maxUploadSize">
            <value>1048576</value>
        </property>
    </bean>

需要导入fileupload依赖包 io的包 com.springsource.org.apache.commons.fileupload-1.2.0.jar com.springsource.org.apache.commons.io-1.4.0.jar

2,编写前端页面代码,使用form表单上传

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/11/7
  Time: 15:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>文件上传</title>
  </head>

  <body>
  <form action="uploadFile" method="post" enctype="multipart/form-data">
  <input type="file" name="file"><br>
  <input type="submit" value="提交">
  </form>
  </body>
</html>

3,controller里面的代码,

一定使用MultipartFile file作为形参,能将前端传入的文件自动注入到该参数中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/uploadFile")
    public String uploadFile(MultipartFile file){
        System.out.println(file.getContentType());//获取文件类型
        System.out.println(file.getSize());//获取文件大小
        System.out.println(file.getOriginalFilename());//获取文件原始名称
        System.out.println(file.getName());//input的name
        //把文件保存在指定路径(桌面)
        try {
            File desFile = new File("C:/Users/Administrator/Desktop/"+file.getOriginalFilename());
            FileUtils.copyInputStreamToFile(file.getInputStream(),desFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "index";
    }

4,使用ajax上传图片,动态显示在傍边的img标签中

ajax的特点:异步请求,局部刷新 前端加上jquary代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/11/9
  Time: 19:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="jq.js"></script>
    <script type="text/javascript">
        $(function(){
            $("#file").change(function(){
               var data = new FormData($("#form")[0]);
                $.ajax({
                    type:"post",
                    url:"uploadFile1",
                    data:data,
                    cache:false,
                    processData:false,
                    contentType:false,
                    beforeSend:function(){
                    },
                    success:function(msg){
                        $("img").attr("src",msg);
                    },
                    error:function(){
                    }
                });
            });
        });
    </script>
</head>
<body>
<form method="post" enctype="multipart/form-data" id="form">
    <input type="file" name="file" id="file"><img style="width: 100px;height: 100px"><br>
</form>
</body>
</html>

controller代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 @RequestMapping("/uploadFile1")
    @ResponseBody//局部刷新
    public String uploadFile1(MultipartFile file ,HttpServletRequest request){
        //把文件保存在指定路径
        String path = request.getServletContext().getRealPath("imgs");
        File destFile = new File(path+"/"+file.getOriginalFilename());
        try {
            InputStream in = file.getInputStream();
            FileUtils.copyInputStreamToFile(in,destFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String msg = "imgs/"+file.getOriginalFilename();
        return msg;
    }

5,文件下载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/download")
    @ResponseBody
    public void download(HttpServletResponse response) throws Exception{
        response.setHeader("content-Disposition","attachment;filename = a.jpg");
        OutputStream out = response.getOutputStream();
        FileInputStream in = new FileInputStream("D:\\file\\1.jpg");
        IOUtils.copy(in,out);
        in.close();
        out.close();
    }

直接访问/download就能下载文件,不过现在都不用这种方法下载了,大都使用html5的新特性下载文件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年11月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
13-SpringMVC文件上传
SpringMVC文件上传 文件上传客户端的三要素 表单项中type值为file 表单的提交方式为post 表单的enctype属性是多部分表单形式,即multipart/form-data 表单的创建 <%-- Created by IntelliJ IDEA. User: renboyu010214 Date: 2021/3/12 Time: 20:08 To change this template use File | Settings | File Templates. --
Ywrby
2022/10/27
3490
13-SpringMVC文件上传
springMVC结合AjaxForm上传文件
最近在项目中需要上传文件文件,之前一直都是form提交的,尝试了一下AjaxForm,感觉还比较好用,写篇随笔mark下,供以后使用。
河岸飞流
2019/08/09
8210
SpringMVC 实现多文件上传的两种方式及其效率比较
springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传。这两种方式对于实 现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方式,同时比较一下在效率上到底存在着多大的差距。 1.下载相关jar包。 需要引入的jar出了springMVC的jar包外,还需要引入 com.springsource.org.apache.commons.fileupload-1.2.0.jar和 com.sp
冷冷
2018/02/08
3.1K0
SpringMVC  实现多文件上传的两种方式及其效率比较
SpringMVC上传下载
1、需要导入jar包:ant.jar、commons-fileupload.jar、connom-io.jar。当然spring jar包不可缺少的哦  我这里用的是spring+springmvc+hibernate  可以到官网上直接下载springmvcjar即可
用户7705674
2021/09/23
4800
Spring MVC 学习总结(五)——校验与文件上传
Spring MVC不仅是在架构上改变了项目,使代码变得可复用、可维护与可扩展,其实在功能上也加强了不少。 验证与文件上传是许多项目中不可缺少的一部分。在项目中验证非常重要,首先是安全性考虑,如防止注入攻击,XSS等;其次还可以确保数据的完整性,如输入的格式,内容,长度,大小等。Spring MVC可以使用验证器Validator与JSR303完成后台验证功能。这里也会介绍方便的前端验证方法。
张果
2022/05/09
1K0
Spring MVC 学习总结(五)——校验与文件上传
spring上传
用户9184480
2024/12/17
540
springmvc之文件上传
1、springmvc为文件上传提供了直接的支持,这种支持是通过即插即用的MulitipartResolver实现的。spring用JakartaCommonsFileUpload技术实现了一个MultiartResovler实现类:CommonsMulitipartResovler。
西西嘛呦
2020/08/26
3740
springmvc之文件上传
基于SpringMVC的上传和下载
注意:form的一个属性值     enctype="multipart/form-data"
CBeann
2023/12/25
1370
基于SpringMVC的上传和下载
《SpringMVC从入门到放肆》十五、SpringMVC之上传文件
上一篇我们学习了数据分组校验,已经可以灵活的在项目中进行数据校验了,今天来学习SpringMVC的上传文件功能。相对来说SpringMVC的上传功能,还是比较简单的。
I Teach You 我教你
2019/07/02
4320
一起来学SpringBoot | 第十七篇:轻松搞定文件上传
文件上传和下载是 JAVA WEB中常见的一种操作,文件上传主要是 将文件通过IO流传输到服务器的某一个特定的文件夹下;刚开始工作那会一个上传文件常常花费小半天的时间,繁琐的代码量以及 XML配置让我是痛不欲生;值得庆幸的是有了 SpringBoot短短的几句代码就能实现文件上传与本地写入操作....
battcn
2018/08/03
9030
一起来学SpringBoot | 第十七篇:轻松搞定文件上传
Ajax+SpingMVC总结
废话不多说,请看代码和注释 <%-- Created by IntelliJ IDEA. User: root Date: 17-1-19 Time: 下午2:23 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Ajax类
程裕强
2022/05/06
7170
Feign实现文件上传下载
Feign框架对于文件上传消息体格式并没有做原生支持,需要集成模块feign-form来实现。
编程随笔
2022/04/29
1.2K0
javaEE项目Multipartfile实现文件上传下载并解决上传与下载文件中文乱码的问题
里面包含了文件上传下载并解决上传与下载文件中文乱码的问题,运用正则表达式判断字符串中是否包含中文和得到一个文件夹下的所有文件的方法,几乎集合了上传下载所需要的所有东西.下面代码加红的部分就是这几个重要点!
洋仔聊编程
2019/01/15
2.4K0
SpringMVC 文件上传简单模板
加入新的依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> springmvc.xml中配置一个多媒体解析器 <!-- 这个id不可缺少,并且id的值一定是multipartResolver--> <bean id="multipartResolv
用户9006224
2022/12/21
4300
Maven+SpringMVC+MyBatis 上传图片
  上传文件我一直都觉得很难,好吧,所有涉及文件操作的我都觉得不容易。然后今天尝试了从网页上传图片保存到服务器。这个例子的前提是搭建好了服务器端框架:Maven+Spring MVC+MyBatis。当然必要的准备我也要提及。   首先是jar包,上传文件必不可少的jar包:commons-fileupload和commons-io。这两个是apache的开源jar包。   Maven配置: <dependency> <groupId>commons-fileupload</groupId>
用户1737026
2018/05/17
1.1K0
一文读懂SpringMVC中的文件上传与下载
这两天研究了一下 SpringMVC 中文件上传与下载,也遇到了一些坑,这里做个总结。
Wizey
2018/09/29
1.7K4
一文读懂SpringMVC中的文件上传与下载
SpringMVC的文件上传
多文件上传,只需要将页面修改为多个文件上传项,将方法参数MultipartFile类型修改为MultipartFile[]即可
楠羽
2023/10/17
1770
SpringMVC的文件上传
Spring MVC多种情况下的文件上传
会洗碗的CV工程师
2023/10/14
2210
Spring MVC多种情况下的文件上传
Springboot文件上传与下载
我们在做项目的时候很多时候会涉及到操作文件的步骤,今天我们就来讲讲如何实现Springboot文件上传与下载。
算法与编程之美
2019/07/17
6970
Java Web之SpringMVC 上传文件
根据之前所说,学习一款MVC框架,必须要知道文件怎么上传的,那么今天就来学习一下,SpringMVC是如何进行文件上传的,需要进行哪些配置,代码是如何编写的。 首先是web.xml的配置 <?xml
YungFan
2018/05/03
1.4K0
相关推荐
13-SpringMVC文件上传
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文