springMVC学习之路2-文件上传
springMVC的上传文件方式一共有两种,下面听我简单介绍一下:
1.1 首先配置springAnnotation-servlet.xml,新增一个multipartResolver处理器,并定义默认编码为utf-8,最大上传大小 和 最大内存大小
<!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8" /> <property name=" /> <property name=" /> </bean>
1.2 创建上传文件的jsp页面
<form name="userForm" action="/SpringMVC6/file/upload2" method="post" enctype="multipart/form-data"> 选择文件:<input type="file" name="file"> <input type="submit" value="上传"> </form>
1.3 创建一个java类
package com.juin.upload; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartResolver; @Controller @RequestMapping("/file") public class uploadController { @RequestMapping("/upload") // 效率比较低 public String addUser(@RequestParam("file") CommonsMultipartFile file, HttpServletRequest request) throws IOException { System.out.println("文件名为: " + file.getOriginalFilename()); if (!file.isEmpty()) { try { FileOutputStream os = new FileOutputStream("F:/upload/" + file.getOriginalFilename()); InputStream in = file.getInputStream(); int b = 0; while ((b = in.read()) != -1) { os.write(b); } os.flush(); os.close(); in.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return "/success"; } //效率较高的上传方法 @RequestMapping("/upload2") public String upload2(HttpServletRequest request) throws IllegalStateException, IOException{ CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); if(commonsMultipartResolver.isMultipart(request)){ //是否为Multipart类型 MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)(request); Iterator<String> iterator = multipartHttpServletRequest.getFileNames(); while(iterator.hasNext()){ MultipartFile file = multipartHttpServletRequest.getFile(iterator.next()); if(file!=null){ String fileName = file.getOriginalFilename(); String path = "F:/upload/"+fileName; File localFile = new File(path); file.transferTo(localFile); } } } return "/success"; } @RequestMapping("/toUpload") public String toUpload() { return "/upload"; } }
springMVC学习之路2-文件上传的更多相关文章
- SpringMVC学习笔记八:文件上传下载(转)
转自:http://www.cnblogs.com/WJ-163/p/6269409.html 一.关键步骤 ①引入核心JAR文件 SpringMVC实现文件上传,需要再添加两个jar包.一个是文件上 ...
- 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载
摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...
- 【Java Web开发学习】Spring MVC文件上传
[Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...
- PHP学习笔记--文件目录操作(文件上传实例)
文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...
- [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- SpringMVC(三)-- 视图和视图解析器、数据格式化标签、数据类型转换、SpringMVC处理JSON数据、文件上传
1.视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法,SpringMVC 也会在内部将 ...
- springMVC数据校验与单文件上传
spring表单标签: <fr:from/> 渲染表单元素 <fr:input/>输入框组件 <fr:password/>密码框组件标签 & ...
- SpringMVC整合fastdfs-client-java实现web文件上传下载
原文:http://blog.csdn.net/wlwlwlwl015/article/details/52682153 本篇blog主要记录一下SpringMVC整合FastDFS的Java客户端实 ...
- SpringMVC ajax技术无刷新文件上传下载删除示例
参考 Spring MVC中上传文件实例 SpringMVC结合ajaxfileupload.js实现ajax无刷新文件上传 Spring MVC 文件上传下载 (FileOperateUtil.ja ...
随机推荐
- Tensorflow Seq2seq attention decode解析
tensorflow基于 Grammar as a Foreign Language实现,这篇论文给出的公式也比较清楚. 这里关注seq2seq.attention_decode函数, 主要输入 de ...
- 新唐MCU常用的工具软件
ICP 在电路编程 需要NULINK ISP 在系统编程,可通过串口或USB PINVIEW 可以显示管脚目前的状态.提供keil下或者单独运行两种模式.Keil下进入debug模式后,点击 ...
- c# 正则
Regex reg = new Regex("^do(es)(xy)?$"); var result = reg.Match("doesxy"); foreac ...
- 将ubuntu的home迁移至第二块磁盘
在忍受了一整周的磁盘将满的报警之后,今天终于着手准备将占据64G磁盘中的44G的Home迁移至另外一块磁盘,当然,这也是使用Linux做PC OS的正确使用方式.在Linux的目录管理风格的基础上,这 ...
- python 运行环境
Python 是一种半编译半解释型运行环境.首先,它会在模块 "载入" 时将源码编译成字节码 (ByteCode).而后,这些字节码会被虚拟机在一个 "巨大" ...
- 转:Maven <resource>标签
maven资源文件的相关配置 构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件. src/main/java和src/test/java 这 ...
- cs231n笔记 (一) 线性分类器
Liner classifier 线性分类器用作图像分类主要有两部分组成:一个是假设函数, 它是原始图像数据到类别的映射.另一个是损失函数,该方法可转化为一个最优化问题,在最优化过程中,将通过更新假设 ...
- share drive 无效
docker设置的share dirve怎么按都无效 试了几遍都不行,想想刚才电脑系统更新了,然后查了下百度,发现是电脑策略的问题,设置成经典的就可以了
- 21、bootstrap框架
http://www.bootcss.com/ Bootstrap 插件==全部依赖 jQuery== 请注意,Bootstrap 的所有 JavaScript 插件都依赖 jQuery,因此 jQu ...
- js中级小知识4
1.针对表单 form input select textarea type="radio/checkbox/passdord/button/submit/reset/ ...