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

SpringMVC实现文件上传

 导入文件上传相关依赖

<!--文件上传-->
<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.4</version>
</dependency>

编写前端jsp页面 和文件 上传的表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>文件上传</title>
</head>
<body>
​
<h3>文件上传</h3>
​
<%--enctype="multipart/form-data" 声明该表单是做文件上传的表单--%>
<form action="/fileupload.do" method="post" enctype="multipart/form-data">选择文件:<input type="file" name="upload" /><br/><input type="submit" value="上传" />
</form>
​
</body>
</html>

配置文件 利用SpringMVC进行文件上传,并指定文件上传大小

<!--配置文件上传的解析器组件。id的名称是固定,不能乱写-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--设置上传文件的总大小 8M = 8 * 1024 * 1024 --><property name="maxUploadSize" value="8388608" />
</bean><!--让映射器、适配器和处理器生效(默认不配置也是可以的)-->
<mvc:annotation-driven/>

编写逻辑代码:

@Controller
//文件上传
public class UploadController {/*** 文件上传** MultipartFile upload 文件上传解析器对象,解析request后,文件上传对象** @return*/@RequestMapping("/fileupload.do")public String upload(MultipartFile upload, HttpServletRequest request) throws IOException {// 把文件上传到哪个位置,realPath获取本次会话路径下面的"/uploads"文件夹下String realPath = request.getSession().getServletContext().getRealPath("/uploads");// 在绝对路径下  创建该文件夹File file = new File(realPath);// 判断该文件夹是否存在if(!file.exists()){// 创建文件夹,程序严谨性file.mkdirs();}// 获取到上传文件的名称String filename = upload.getOriginalFilename();// 把文件的名称修改成为一的值 sdfs-csdf-fwer-sdfwString uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase();// 唯一的值filename = uuid+"_"+filename;System.out.println("文件名称:"+filename);// 上传文件upload.transferTo(new File(file,filename));return "suc";}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • stm32 io输入中断
  • 系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识-解读
  • 华为云.云日志服务LTS及其基本使用
  • linux、windows、macos清空本地DNS缓存
  • 基于全阶观测器的三自由度运动系统状态反馈控制simulink建模与仿真
  • 45、PHP 实现滑动窗口的最大值
  • 物联网专业创新人才培养体系的探索与实践
  • 1、Flink 的 Table API SQL API 概述
  • Java之 jvm
  • 量化机器人能否提高市场预测精度?
  • 推荐一款基于Spring Boot 框架开发的分布式文件管理系统,功能齐全,非常便捷(带私活源码)
  • Mysql注意事项(二)
  • golang长连接的误用
  • 使用原生 HTML + JS 实现类似 ChatGPT 的文字逐字显示效果
  • 实现Nginx的反向代理和负载均衡
  • @angular/forms 源码解析之双向绑定
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2017前端实习生面试总结
  • gcc介绍及安装
  • Invalidate和postInvalidate的区别
  • JavaScript中的对象个人分享
  • Java的Interrupt与线程中断
  • Java反射-动态类加载和重新加载
  • Python_网络编程
  • React+TypeScript入门
  • supervisor 永不挂掉的进程 安装以及使用
  • uva 10370 Above Average
  • ViewService——一种保证客户端与服务端同步的方法
  • 安装python包到指定虚拟环境
  • 番外篇1:在Windows环境下安装JDK
  • 警报:线上事故之CountDownLatch的威力
  • 前端工程化(Gulp、Webpack)-webpack
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 我的面试准备过程--容器(更新中)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​你们这样子,耽误我的工作进度怎么办?
  • #window11设置系统变量#
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (7)摄像机和云台
  • (arch)linux 转换文件编码格式
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (SpringBoot)第二章:Spring创建和使用
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)测试工具
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (五)Python 垃圾回收机制
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • ***详解账号泄露:全球约1亿用户已泄露
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .axf 转化 .bin文件 的方法