springmvc中的multipart使用
来源:互联网 发布:java高级编程 jb51 编辑:程序博客网 时间:2024/05/17 06:42
在开发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中的multipart使用
- SpringMVC multipart文件上传
- SpringMVC multipart(文件上传)
- SpringMVC multipart文件上传
- SpringMVC multipart文件上传
- SpringMVC multipart文件上传下载
- springmvc + multipart 实现文件上传
- MIME中的Multipart/mixed
- SpringMVC入门之九:multipart文件上传
- json在springMVC中的使用
- json在springMVC中的使用
- SpringMVC中的自定义视图使用
- 在使用springmvc上传图片时碰到的 The current request is not a multipart request问题
- 使用表单在springMVC的后台上传文件时遇到500错误:The current request is not a multipart request
- 深入springMVC------文件上传源码解析(上篇) 最近在项目中,使用springmvc 进行上传文件时,出现了一个问题: org.springframework.web.multipart
- Struts2中的struts.multipart.saveDir的配置
- Struts2中的struts.multipart.saveDir的配置
- Struts2中的struts.multipart.saveDir的配置
- Java Web学习总结(36)——JavaEE知识体系及项目开发过程的总结
- java过滤器
- Linux下Python2.7、pip的安装详解
- 编程题3-临考前5小时抱佛脚 //笑哭
- 占位
- springmvc中的multipart使用
- 披露悠百佳休闲食品加盟骗局不要在上当受骗!
- 10.4-全栈Java笔记:常用流详解(二)
- angualr的$emit,$broadcast,$on
- 燕麦云何洋开讲丨从新iPad pro发现苹果移动办公布局玄机
- structs拦截器
- Hadoop1.2.1伪分布式部署遇到的一些问题
- 提高软件测试能力的建议
- spring mvc和struts2的区别