当前位置: 首页 > news >正文

基于springmvc实现文件上传

1.导入jar包

2.修改配置类

在springmvc.xml添加bean

 <!-- 配置文件上传处理器 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 设置在内存中允许的最大文件大小,超过此大小的文件将被写入磁盘 --><property name="maxInMemorySize" value="500000"></property><!-- 设置默认的文件编码,以支持多语言文件名和文件内容 --><property name="defaultEncoding" value="UTF-8"></property></bean>

3.设置路径

Tomcat安装目录中的webapps中新建文件夹upload,用于存放本地文件

4.修改Tomcat

打开IDEA


5.修改controller

这里以新增为例

/*** 处理条目插入请求* 该方法用于将用户提交的条目和相关文件插入到系统中*/@RequestMapping("/EntryInsertServlet")public String doInsert(Model model,Entry entry,@RequestParam(value = "myFile", required = false) MultipartFile[] multipartFiles) {String picpath = "";// 遍历上传的文件for (MultipartFile multipartFile : multipartFiles) {String fileName = multipartFile.getOriginalFilename();// 检查文件名是否为空if (fileName != null && !fileName.equals("")) {try {// 获取并设置上传文件的保存路径String path = System.getProperty("user.dir").replace("bin", "webapps") + "/upload/";// 为上传的文件生成唯一的文件名,防止重名fileName = System.currentTimeMillis() + "_" + multipartFile.getOriginalFilename();File file = new File(path, fileName);// 将文件保存到服务器multipartFile.transferTo(file);// 记录文件名,用于后续操作picpath += fileName + ",";} catch (IOException e) {e.printStackTrace();}}}// 设置条目的图片路径entry.setPicpath(picpath);// 调用业务逻辑插入条目int insert = entryServlet.insert(entry);// 根据插入结果添加消息到模型,以便在页面上显示model.addAttribute("msg", insert > 0 ? "增加成功" : "增加失败");// 重定向到条目列表页面return "redirect:EntryListServlet";}

JSP页面的代码示例

显示:通过c:forTokens 将值按照 ','分割,名称为pic,在img的src添加/upload/然后拼接${pic}

插入:请求改成postentype改成“multipart/form-data

<form action="EntryInsertServlet" method="post"enctype="multipart/form-data"><table border="1px" align="center"><tr><td>图片上传</td><td><input type="file" name="myFile"></td></tr><tr><td>图片上传</td><td><input type="file" name="myFile"></td></tr><tr><td>图片上传</td><td><input type="file" name="myFile"></td></tr><tr><td colspan="2" style="text-align: center"><input type="submit" value="提交"><input type="button" value="返回" onclick="fh()"></td></tr></table>
<form/>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 常见虚拟现实硬件设备及特点
  • C++不同数据类型连接成一个字符串
  • 老程序员回到小地方搞团队接私活
  • Vue | 简单说说 Vuex 实现响应式的原理
  • leetcode203:移除链表元素
  • 【Linux目录结构简析】
  • Datawhale X 李宏毅苹果书 AI夏令营task1-3笔记
  • linux:进程间的通信
  • python怎么使用模块中的类
  • vue3 生命周期钩子
  • 2024.8.23 刷题总结
  • 【clickhouse】访问clickhouse数据库,并且插入数据
  • Solidworks二次开发:样条曲线、平移、旋转和扫描切除
  • 自定义@ResponseBody以及SpringMVC总结
  • 唯有自救,才能得救
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Android 控件背景颜色处理
  • ES6之路之模块详解
  • fetch 从初识到应用
  • gf框架之分页模块(五) - 自定义分页
  • isset在php5.6-和php7.0+的一些差异
  • JS 面试题总结
  • Linux下的乱码问题
  • spring + angular 实现导出excel
  • vue总结
  • 对象管理器(defineProperty)学习笔记
  • 记一次用 NodeJs 实现模拟登录的思路
  • 简析gRPC client 连接管理
  • 力扣(LeetCode)56
  • 算法-图和图算法
  • 线上 python http server profile 实践
  • 原生JS动态加载JS、CSS文件及代码脚本
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​flutter 代码混淆
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #07【面试问题整理】嵌入式软件工程师
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (过滤器)Filter和(监听器)listener
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .net Application的目录
  • .Net core 6.0 升8.0
  • .NET大文件上传知识整理
  • @Autowired和@Resource的区别
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @Conditional注解详解
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [ACM] hdu 1201 18岁生日