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

.form文件_SSM框架文件上传篇

cce15f5d40cbcbe81f45bed41f779710.png

SSM框架文件上传篇

在Servlet学习阶段,文件上传的代码过于复杂和麻烦,SpringMVC中 对于文件上传显而变的简单易懂,下面我就带这大家配置一下

第一步:引入文件上传需要的jar包 commons-fileupload-1.3.1.jar 和commons-io-2.4 (两种jar包配使用) 放入WEB-INF/lib文件夹下

第二步:需要在springmvc配置文件中配置文件视图解析器的bean节点

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="102400000"></property>

</bean>

第三步:需要在<form>表单中加入文件域<input type=”file”>

第四步:再在<form> 标签加入enctype=” multipart/form-data”>

<form action="mvc/upload" method="post" enctype="multipart/form-data">

<input type="file" name="file"><br>

<input type="submit" value="submit">

</form>

第五步:编写控制层方法

public String upload(HttpServletRequest req) throws Exception{

//转换成多部分request对象

MultipartHttpServletRequest mreq = (MultipartHttpServletRequest)req;

//获得文件对象

MultipartFile file = mreq.getFile("file");

//获得上传文件名

String fileName = file.getOriginalFilename();

//格式化数据

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

//以流的形式写入文件

FileOutputStream fos = new FileOutputStream(req.getSession().getServletContext().getRealPath("/")+

"upload/"+sdf.format(new Date())+fileName.substring(fileName.lastIndexOf('.')));

fos.write(file.getBytes());

fos.flush();

fos.close();

return "hello";

}

相关文章:

  • 网络上人气最旺最酷的281个论坛排名
  • nacos使用_Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用
  • XML操作类
  • ansys流固耦合分析与工程实例_国际主流结构分析软件技术现状剖析(3)
  • [原创]网页中自动连续播放音乐文件的实现
  • pandas excel有多个工作表_Excel通用一键汇总指定文件夹里的多个工作表
  • java nio 多路复用_【NIO系列】——之Reactor模型
  • 旧闻一则:7500万美元“小钱”阴谋 卓越网钻入亚马逊囊中
  • python检查并删掉有空值的表_为什么要用Python来处理数据分析
  • XP中被嵌入到可信进程(如:Explorer.exe)的木马dll文件
  • python 函数参数_python学习——理解python函数参数的传递
  • 红帽收购网景服务器软件 扩大开源产品阵容
  • linux查看文件大小以m为单位_102个Linux指令你都掌握了吗?
  • 韩国播放器Aquamp(已经汉化)
  • mysql输入密码后无反应_变频器通电后无反应,如何检查维修?
  • Go 语言编译器的 //go: 详解
  • JS基础之数据类型、对象、原型、原型链、继承
  • js学习笔记
  • mac修复ab及siege安装
  • Python3爬取英雄联盟英雄皮肤大图
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Yeoman_Bower_Grunt
  • zookeeper系列(七)实战分布式命名服务
  • 记一次和乔布斯合作最难忘的经历
  • 简单易用的leetcode开发测试工具(npm)
  • 前端技术周刊 2019-02-11 Serverless
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 原生Ajax
  • 云大使推广中的常见热门问题
  • Linux权限管理(week1_day5)--技术流ken
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 回归生活:清理微信公众号
  • ​Linux·i2c驱动架构​
  • #QT(串口助手-界面)
  • #图像处理
  • (26)4.7 字符函数和字符串函数
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (八十八)VFL语言初步 - 实现布局
  • (备忘)Java Map 遍历
  • (二开)Flink 修改源码拓展 SQL 语法
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • *Django中的Ajax 纯js的书写样式1
  • *p++,*(p++),*++p,(*p)++区别?
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET : 在VS2008中计算代码度量值
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .Net CoreRabbitMQ消息存储可靠机制
  • .net 无限分类
  • .Net 知识杂记
  • .netcore如何运行环境安装到Linux服务器
  • .net反编译工具
  • .NET是什么
  • /3GB和/USERVA开关
  • :O)修改linux硬件时间