SpringMVC的 transferTo使用
来源:互联网 发布:妙笔生花软件 编辑:程序博客网 时间:2024/05/03 02:23
在开发Web应用程序时比较常见的功能之一,就是允许用户利用multipart请求将本地文件上传到服务器,而这正是Grails的坚固基石——SpringMVC其中的一个优势。Spring通过对ServletAPI的HttpServletRequest接口进行扩展,使其能够很好地处理文件上传。扩展后的接口名为org.springframework.web.multipart.MultipartHttpServletRequ
清单7-31
interface MultipartHttpServletRequ
public MultipartFile getFile(String name);
public Map getFileMap();
public Iterator getFileNames();
}
如清单所示,MultipartHttpServletRequ
7.10.1
实际上只要发现一个multipart请求,就表明在控制器实例中存在一个实现MultipartHttpServletRequest接口的request对象。我们可以通过清单7-31所示的方法来访问multipart请求中的上传文件,不过在处理上传文件之前,先来看一下上传表单的内容,如清单7-32所示。
清单7-32
<form action="upload"enctype="multipart/form-data">
<input type="file" name="myFile"/>
<input type="submit" value="Upload! "/>
</form>
粗体显示的是需要注意的部分,实际上一个上传表单只需要满足如下两点。
l
l
在前面的示例中,<input>标签中属性type的值为file,且name属性的值为myFile,之所以需要name属性值,是因为在使用接口MultipartHttpServletRequ
清单7-33
def upload = {
def file = request.getFile('myFile')
// 处理该文件
}
注意getFile方法不会返回一个java.io.File的实例,而是返回org.springframework.web.multipart.MultipartFile的一个实例,关于org.springframework.web.multipart.MultipartFile的详细信息,请参考清单7-34。如果在请求中没有找到文件则getFile方法返回null。
清单7-34
interface MultipartFile {
public byte[] getBytes();
public String getContentType();
public java.io.InputStream getInputStream();
public String getName();
public String getOriginalFilename();
public long getSize();
public boolean isEmpty();
public void transferTo(java.io.File dest);
}
在MultipartFile接口中定义了如下很多有用的方法。
l
l
l
l
l
例如,如果上传的文件不为空并且大小不小于1024字节,那么可以按照清单7-35中的代码来实现。
清单7-35
def upload = {
def file = request.getFile('myFile')
if(file && !file.empty&& file.size < 1024){
file.transferTo( new java.io.File("/local/server/path/${file.name}" ) )
}
}
直接使用MultipartHttpServletRequ- SpringMVC的 transferTo使用
- springMVC上传文件Java使用transferTo方法事半功倍
- transferto()方法,是springmvc封装的方法,用于图片上传时,把内存中图片写入磁盘
- springmvc框架的使用
- springMVC主题的使用
- springmvc标签的使用
- springmvc标签的使用
- springmvc的基本使用
- SpringMVC List 的使用
- springmvc @ModelAttribute的使用
- SpringMVC Valication的使用
- SpringMVC @ModelAttribute 的使用
- springmvc的入门使用
- springmvc Interceptor 的使用
- SpringMVC + Swagger2 的使用
- SpringMVC的表单使用
- SpringMVC HiddenHttpMethodFilter的使用
- SpringMVC-@Controller的使用
- spring mvc中文件下载
- Android 获取Root权限之后的静默安装实现 代码示例分析&&源码下载
- OS X10.12上安装cocoapods
- Leetcode刷题记——136. Single Number(单独的数字)
- Glide使用探索(一)
- SpringMVC的 transferTo使用
- c# Socket服务器整体架构概述
- java基本语法总结
- CSS Hack (各个浏览器兼容的问题)
- Dynamics CRM Online 10 Data Export and Import Redesign Features
- ExpandableListView+Dialog实现弹出二级下拉列表选项。可自由用于Activity和Fragment中
- Android进程间通信和线程间通信
- Mave+Spring+Hibernate SSH配置
- ie9浏览器无法安装ActiveX控件问题