TZ_06_SpringMVC_传统文件上传和SpringMVC文件上传方式
1.传统文件上传方式
<!-- 文件上传需要的jar -->
<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>
1>form.jsp配置
设置编码方式为:多部分表格-数据
<form action="fileUpload" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="upload"><br>
<input type="submit" value="传统方式">
</form>
2>uploadController
/**
* 传统模式的文件上传
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/fileUpload")
public String testFileUpload(HttpServletRequest request) throws Exception { String path = request.getSession().getServletContext().getRealPath("/upload");
File file = new File(path);
System.out.println("path:" + path);
if (!file.exists()) {
file.mkdir();
} // 解析request对象,获取上传文件项
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
// 获得enctype="multpart/form-data"的表单项 for (FileItem item : items) {
if (item.isFormField()) {
} else {
// 获取上传文件想项
String fileName = item.getName();
String name = UUID.randomUUID().toString().replace("-", "")+fileName;
item.write(new File(file, name));
// 在内存中删除临时文件
item.delete();
}
}
return "success";
}
2.SpringMVC文件上传
1>form.jsp配置
设置编码方式为:多部分表格-数据
<form action="fileUpload2" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="upload"><br> //name必须时controller就收的参数名
<input type="submit" value="SpringMVC方式">
</form>
2>配置上传文件的文件解析器
<!--配置上传文件的文件解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"></property>
</bean>
3>uploadController
public class UserController {
/**
* Springmvc模式的文件上传
*
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/fileUpload2")
public String testFileUpload2(MultipartFile upload, HttpServletRequest request) throws Exception {
String path = request.getSession().getServletContext().getRealPath("/upload");
File file = new File(path);
System.out.println("path:" + path);
if (!file.exists()) {
file.mkdir();
}
// 获取上传文件想项
String name = UUID.randomUUID().toString().replace("-", "")+upload.getOriginalFilename();
upload.transferTo(new File(path, name));
return "success";
}
————你是我自罚三杯也不肯开口的秘密
TZ_06_SpringMVC_传统文件上传和SpringMVC文件上传方式的更多相关文章
- 基于SpringMVC的文件(增删改查)上传、下载、更新、删除
一.项目背景 摘要:最近一直在忙着项目的事,3个项目过去了,发现有一个共同的业务,那就是附件的处理,附件包括各种文档,当然还有图片等特殊文件,由于时间的关系,每次都是匆匆忙忙的搞定上线,称这项目的空档 ...
- 基于SpringMVC的上传文件实现
基于SpringMVC的上传文件实现 1.项目源码 源码地址:upload 2.关键代码 @RequestMapping("/upload2") public void datal ...
- 18 SpringMVC 文件上传和异常处理
1.文件上传的必要前提 (1)form 表单的 enctype 取值必须是:multipart/form-data(默认值是:application/x-www-form-urlencoded) en ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)
读取Excale表返回一个集合: package com.shiliu.game.utils; import java.io.File; import java.io.FileInputStream; ...
- springMVC文件上传
参考的地址:http://www.tuicool.com/articles/nMVjaiF 1.需要使用的jar. commons-fileupload.jar与commons-io-1.4.jar二 ...
- springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传
总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...
- SpringMVC文件上传下载
在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...
- SpringMVC文件上传实现
SpringMVC(注解)上传文件需要注意的几个地方:1.form的enctype="multipart/form-data",这个是上传文件必须的2.applicationCon ...
随机推荐
- c语言排序代码实现
关于快速,冒泡,选择,插入等排序,本人用代码实现,均能运行成功. 本文除了排序,针对几种swap函数,也进行了说明,通过汇编代码分析,swap1函数的效率最高. #include<iostrea ...
- JS流程控制语句 做判断(if语句)if语句是基于条件成立才执行相应代码时使用的语句。语法:if(条件) { 条件成立时执行代码}
做判断(if语句) if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位,如果 ...
- 关于set_multicycle_path的最后总结
(1) –start/-end决定移动的距离以start_clock/end_clock为单元: (2) 对于-setup选项,移动距离是在默认关系的基础上移动(数值-1): (3) 默认往后, se ...
- 点击回退时需要点击2次才可返回js
为a加上window.location.href跳转页面时,再返回到此页面,再点击返回时需点击2次才能返回到前一个页面,原因竟然是href=“#”的原因,在html中#可做为锚点 http://blo ...
- LintCode刷题笔记-- A+B problem
标签: 位运算 描述 Write a function that add two numbers A and B. You should not use + or any arithmetic ope ...
- iOS开发UIView.h简介
1.UICoordinateSpace不同坐标空间的坐标切换 @protocol UICoordinateSpace <NSObject> //将当前的坐标空间点转换到指定的坐标空间 - ...
- 服务器迁移部署PosApp
绑定 基本配置 高级设置
- WebSocket实践
基本弄清楚了WebSocket的来龙去脉后,开始了实现WebSocket技术的探索. 看过一篇文章,测试了八种WebSocket框架性能,得以了解到实现WebSocket技术的框架有: Netty.U ...
- Jmeter安装与配置(第一篇)
Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文 ...
- 04-3-object类型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...