最近在做一个文件上传的功能,走了不少弯路,话不多说,直接上代码:

导入各种jar包,首先是applicationContext.xml配置文件中:

 <!-- 配置文件解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>

写两个前端页面:upLoad.jsp

 <body>
<form action="upload.do" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="username"/><br>
头像:<input type="file" name="mf"/><br>
姓名:<input type="submit" value="上传"/>
</form>
</body>

show.jsp

 <body>
<h1>head image</h1>
<img alt="" src="${image }" style="width: 400px;height: 500px">
</body>

然后进入正题,写一个上传的战士页面的controller

@RequestMapping("/toUpload.do")  //SpringMVC的映射标注
public String toUpload(){
return "upload";
}

然后

 @Controller
public class FileUploadController { // MultipartFile 用于接受文件对象
@RequestMapping("/upload.do") // MultipartFile用于接受用户名和数据,否则文件上传时候也上encytype后悔接收不到数据
public String upload(String username, MultipartFile mf, HttpServletRequest req) { System.out.println(username + "||" + mf.getOriginalFilename() + "||" + mf.getSize());
// 把文件写入响应路径下
String realpath = req.getServletContext().getRealPath("images");// 获取到当前文件夹的真是路径
String orName = mf.getOriginalFilename();// 获取文件的原始名字
String fileName = System.currentTimeMillis() + orName.substring(orName.lastIndexOf("."));// 修改上传文件的名字,时间加后缀
String filePath = realpath + "/" + fileName;
System.out.println(filePath);
File file = new File(filePath);// 创建一个文件对象
try {
mf.transferTo(file);// 将文件写入到路径中
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
req.setAttribute("image", "images/" + fileName);
return "show";
}
}

OK!,大功告成!

初学SpringMVC,使用MVC进行文件上传的更多相关文章

  1. Spring MVC实现文件上传

    基础准备: Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver.Spring使用Jakarta Commons FileUpload技术实现了一个Multi ...

  2. SpringMVC:学习笔记(8)——文件上传

    SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...

  3. Spring MVC的文件上传

    1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...

  4. SpringMVC注解方式与文件上传

    目录: springmvc的注解方式 文件上传(上传图片,并显示) 一.注解 在类前面加上@Controller 表示该类是一个控制器在方法handleRequest 前面加上 @RequestMap ...

  5. Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器

    1.文件上传.      spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...

  6. SpringMVC 通过commons-fileupload实现文件上传

    目录 配置 web.xml SpringMVC配置文件 applicationContext.xml 文件上传 Controller 上传实现一 上传实现二 测试 依赖 配置 web.xml < ...

  7. MVC之文件上传1

    MVC之文件上传 前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public Act ...

  8. Asp.net mvc 大文件上传 断点续传

    Asp.net mvc 大文件上传 断点续传 进度条   概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...

  9. Spring MVC的文件上传和下载

    简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...

随机推荐

  1. docker 存储驱动之 overlay2

    overlay2 简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性:  1) 更简单地设计 2) 从3.18开始,就进入了Linux内核主线 3) ...

  2. ISE14.7生成.bit文件和mcs文件

    1.FPGA bit文件加载步骤(加载到FPGA的RAM中,用于在线调试,掉电丢失) 第一步:选择Tools->IMPCAT->选择OK: 第二步:双击Boundary Scan-> ...

  3. lambda 、 map 、filter 、reduce 及 reversed 常用函数

    lambda 匿名函数 什么是lambda? lambda 操作符(或 lambda 函数)通常用来创建小巧的,一次性的匿名函数对象.它的基本语法如下: lambda arguments : expr ...

  4. 使用wblockCloneObjects从后台读取dwg文件复制实体到当前数据库

    AcDbDatabase *pNewDb=new AcDbDatabase(Adesk::kFalse); if (pNewDb == NULL) { return; } Acad::ErrorSta ...

  5. tomcat 线程模型

    最近看到了内网ATA上的一篇断网故障时Mtop触发tomcat高并发场景下的BUG排查和修复(已被apache采纳),引起了我的好奇,感觉原作者对应底层十分了解,写的很复杂.原来对于tomcat的线程 ...

  6. 如何实现三个div都自适应(滴滴面试题)

    <div class="table"> <div class="accordant"> <div class="box& ...

  7. MyEclipse生成Javadoc帮助文档

    Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Java ...

  8. Mysql 四种事务隔离介绍以及锁机制

    还有很多不太懂,这里收集几份大佬文章“飞机票”,待我整理好了,再好好写一篇文章吧. MySQL的四种事务隔离级别 https://www.cnblogs.com/huanongying/p/70215 ...

  9. Kotlin Eclipse 环境搭建

    Kotlin是JetBrains开发的基于JVM的语言.JetBrains是一家捷克的软件开发公司,该公司位于捷克的布拉格,研发了IntelliJ IDEA这款相对于Eclipse有较大改善的大名鼎鼎 ...

  10. day2: python3.5学习——逻辑判断

    1. 简单的用户名和密码输入 username = "Helen"password = "123abc" _username = input("use ...