当前位置: 首页 > 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/>


http://www.mrgr.cn/news/8697.html

相关文章:

  • 【Linux篇】Linux的用户和权限
  • JUC- Synchronized原理
  • 深度学习100问2-分布式假设在自然语言处理中的应用场景有哪些
  • Git(面试篇)
  • linux安装python3.11.9
  • C语言从头学50—变量说明符
  • esp32c3 luaos
  • 【STM32项目】在FreeRtos背景下的实战项目的实现过程(三)
  • Docker的安装与镜像配置
  • 【线性代数】【二】2.10 标准正交基与正交矩阵
  • IDEA XML文件去掉黄色和绿色底色
  • 缓存之Tair
  • 【深入浅出Docker】【三】Docker容器详解
  • C# 时间日期运算
  • 单片机中的存储器讲解
  • 如何快速轻松地从 iPhone 恢复已删除的照片
  • 墨刀基础篇(一) :6.常用组件(动态组件)
  • 一文迅速上手 ESP32 bluedroid 蓝牙从机开发
  • Prometheus学习
  • 如何巧妙减小Uniapp打包后的小程序体积?