SpringMVC的文件上传

2023-10-29

SpringMVC的文件上传

1-SpringMVC的请求-文件上传-客户端表单实现

  • 文件上传客户端表单需要满足:
    ①、表单项type=“file”
    ②、表单的提交方式是post
    ③、表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”
<form action="${pageContext.request.contextPath}/user/quick22" method="post" enctype="multipart/form-data">
    名称<input type="text" name="username"><br/>
    文件1<input type="file" name="uploadFile"><br/>
    <input type="submit" value="提交">
</form>

2-SpringMVC的请求-文件上传-文件上传的原理

在这里插入图片描述

3-SpringMVC的请求-文件上传-单文件上传的代码实现1

  • 在pom.xml文件里面添加依赖,导入fileupload和io坐标
<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>
<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.3</version>
</dependency>
  • 在spring-mvc.xml文件里面配置多媒体解析器,配置文件上传解析器
<!--配置文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<!--上传文件的编码类型-->
    <property name="defaultEncoding" value="UYF-8"/>
    <!--上传文件总大小-->
    <property name="maxUploadSize" value="500000"/>
</bean>
  • 后台程序
@RequestMapping(value="/quick22")
@ResponseBody
public void save22(String username, MultipartFile uploadFile) throws IOException {
    System.out.println(username);
   	System.out.println(uploadFile);
}

在这里插入图片描述

4-SpringMVC的请求-文件上传-单文件上传的代码实现2

  • 完成文件上传
@RequestMapping(value="/quick22")
@ResponseBody
public void save22(String username, MultipartFile uploadFile) throws IOException {
    System.out.println(username);
    //获得上传文件的名称
    String originalFilename = uploadFile.getOriginalFilename();
    //传送到需要存储的位置
    uploadFile.transferTo(new File("D:\\upload\\"+originalFilename));
}

5-SpringMVC的请求-文件上传-多文件上传的代码实现

  • 多文件上传,只需要将页面修改为多个文件上传项,将方法参数MultipartFile类型修改为MultipartFile[]即可
<form action="${pageContext.request.contextPath}/user/quick23" method="post" enctype="multipart/form-data">
    名称<input type="text" name="username"><br/>
    文件1<input type="file" name="uploadFile"><br/>
    文件2<input type="file" name="uploadFile"><br/>
    <input type="submit" value="提交">
</form>
@RequestMapping(value="/quick23")
@ResponseBody
public void save23(String username, MultipartFile[] uploadFile) throws IOException {
    System.out.println(username);
    for (MultipartFile multipartFile : uploadFile) {
        String originalFilename = multipartFile.getOriginalFilename();
        multipartFile.transferTo(new File("D:\\upload\\"+originalFilename));
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMVC的文件上传 的相关文章

随机推荐

  • python制作编程软件的方法_利用python程序生成word和PDF文档的方法

    一 程序导出word文档的方法 将web html内容导出为world文档 再java中有很多解决方案 比如使用Jacob Apache POI Java2Word iText等各种方式 以及使用freemarker这样的模板引擎这样的方式
  • 【nvidia】1.命令行方式安装nvidia显卡驱动

    文章目录 方法一 第一步 查询合适的显卡驱动 第二步 安装驱动 第三步 重启电脑并验证安装 方法二 第一步 安装显卡驱动PPA 第二步 查找合适的显卡驱动 第三步 移除系统上先前安装的显卡驱动 第四步 安装显卡驱动 第五步 重启电脑并验证安
  • 334:递增的三元子序列-中等

    题目描述 给定一个未排序的数组 判断这个数组中是否存在长度为 3 的递增子序列 数学表达式如下 如果存在这样的 i j k 且满足 0 i lt j lt k n 1 使得 arr i lt arr j lt arr k 返回 true 否
  • 长虹电视新机测试什么软件,2021长虹电视安装第三方app最新方法!长虹电视解除第三方限制...

    警告 最后再次提醒各位 刷机有风险 用户需谨慎 变成昂贵的大黑板了那可不好玩了 除非电视有问题需要刷机 否则不推荐各位进行刷机操作 正文 在一些新机器新版本固件当中 长虹为了缩短开机启动过程的时间 启用了新的刷机策略 和之前的都不一样了 这
  • 编程计算饥荒所有农作物搭配(JavaScript版)

    导语 通过编程计算饥荒游戏中 所有农作物可满足肥度自给自足的种植搭配 思路 穷举出所有农作物 包括生长季节 生长素 堆肥 肥料消耗数值等属性 后续如果版本更新或有MOD农作物需添加 在此处修改添加 const ALL CROPS name
  • 因果推断—现代统计的思想飞跃:过去、现在到未来(伯克利丁鹏博士万字长文)...

    来源 专知 本文约12400字 建议阅读10 分钟 本文将回顾统计因果推断的历史背景 评述中国因果推断研究的现状 并且大胆推测它未来的发展前景 转载自 数学文化 2021 第 12 卷第 2 期 已获得原刊和作者授权 引言 探求事物的原因
  • 华为OD机试 - 猜数字(Java)

    题目描述 一个人设定一组四码的数字作为谜底 另一方猜 每猜一个数 出数者就要根据这个数字给出提示 提示以XAYB形式呈现 直到猜中位置 其中X表示位置正确的数的个数 数字正确且位置正确 而Y表示数字正确而位置不对的数的个数 例如 当谜底为8
  • 全栈之前端

    欢迎关注 全栈工程师修炼指南 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 花开堪折直须折 莫待无花空折枝 作者主页 https www weiyigeek top 博客 https b
  • C# .Net中的类型转换(转载)

    转载自 http www ynws gov cn wsrs blog blogview asp logID 99 导读 本文是对 C 的类型转换的讲解 其内容涉及 C 的装箱 拆箱 别名 数值类型间相互转换 字符的 ASCII 码和 Uni
  • unity热更新框架Xlua--配置环境变量与直接执行字符串

    本博客根据51CTOscholl刘国柱老师网课编写 小白笔记 侵权必删 Xlua下载链接 https pan baidu com s 1YiCuojsE3uzZF7rLuIKYtw 提取码 t4xe 配置环境 将上面链接的压缩包解压 并将其
  • elementui 之el-table通过v-if 控制按钮显示与隐藏

    前端效果演示 后端代码
  • Git管理神器SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR)...

    前言 俗话说的好工欲善其事必先利其器 Git分布式版本控制系统是我们日常开发中不可或缺的 目前市面上比较流行的Git可视化管理工具有SourceTree Github Desktop TortoiseGit 综合网上的一些文章分析和自己的日
  • Java 并发 ThreadLocal 详解

    文章首发于个人博客 欢迎访问关注 https www lin2j tech 简介 ThreadLocal 即线程本地变量的意思 常被用来处理线程安全问题 ThreadLocal 的作用是为多线程中的每一个线程都创建一个线程自身才能用的实例对
  • 凯利公式自动计算表_利用凯利公式计算每场投注的最佳比例

    即便是胜率 99 的赌局 如果每局全押 那么也注定会血本无归 即便是胜率只有 1 如果 1000 元钱本金每局仅投注 1 元 哪怕每次必输 也要 1000 次才会破产 成功的投资不仅要对投资策略的胜率具有一定程度的认识 同时要认真分析每一次
  • Java中终止线程的3种方法,你是否了解?

    一 stop 方法终止线程 线程不安全 不推荐 直接使用thread stop 来强行终止线程 线程会立即终止执行 可能会产生不可预料的结果 在调用thread stop 后会导致该线程所持有的所有锁突然释放 不可控制 那么被保护数据就有可
  • kafka3.1.0 java 测试demo

    前置条件 首先已经安装的Java环境 并且安装了zookeeper服务注册中心 下载 https kafka apache org 当前最新版本3 1 0 安装 在windows解压后主要关注的是config文件下的server prope
  • 第十一届蓝桥杯C/C++寻找2020

    第十一届蓝桥杯C C 寻找2020 对我来说一开始主要是不会把文本的内容复制去数组里面 后来找了同学帮忙才解决的 直接上代码 结果是16520 include
  • python输入三门课程成绩_python脚本如何输入成绩求平均分?

    python脚本如何输入成绩求平均分 python脚本输入成绩求平均分的方法 脚本要实现功能 1 输入学生学号 2 依次输入学生的三门科目成绩 3 计算该学生的平均成绩 并打印 4 平均成绩保留两位小数点 计算该学生语文成绩占总成绩的百分比
  • 《消息队列高手课》该如何选择消息队列

    作为一个程序员 相信你一定听过 没有银弹 这个说法 这里面的银弹是指能轻松杀死狼人 用白银做的子弹 什么意思呢 我对这句话的理解是说 在软件工程中 不存在像 银弹 这样可以解决一切问题的设计 架构或软件 每一个软件系统 它都是独一无二的 你
  • SpringMVC的文件上传

    SpringMVC的文件上传 SpringMVC的文件上传 1 SpringMVC的请求 文件上传 客户端表单实现 2 SpringMVC的请求 文件上传 文件上传的原理 3 SpringMVC的请求 文件上传 单文件上传的代码实现1 4