此前,对于处理上传文件的操作一直是让开发者头疼的问题,因为 Servlet 本身没有对此提供直接的支持,需要使用第三方框架来实现,而且使用起来也不够简单。Servlet 3.0 已经提供了这个功能,而且使用也非常简单。为此,HttpServletRequest 提供了两个方法用于从请求中解析出上传的文件:

•Part getPart(String name)

•Collection<Part> getParts()

前者用于获取请求中给定 name 的文件,后者用于获取所有的文件。每一个文件用一个 javax.servlet.http.Part 对象来表示。该接口提供了处理文件的简易方法,比如 write()、delete() 等。至此,结合 HttpServletRequest 和 Part 来保存上传的文件变得非常简单,如下所示:

Part photo = request.getPart("photo"); photo.write("/tmp/photo.jpg"); // 可以将两行代码简化为 request.getPart("photo").write("/tmp/photo.jpg") 一行。

另外,可以配合前面提到的 @MultipartConfig 注解来对上传操作进行一些自定义的配置,比如限制上传文件的大小,以及保存文件的路径等。其用法非常简单。

需要注意的是,如果请求的 MIME 类型不是 multipart/form-data,则不能使用上面的两个方法,否则将抛异常。

最新文章

  1. 疑难问题解决备忘录(2)——ubuntu12.04分配swap
  2. 关闭英文拼写检查,关闭xml验证
  3. MySQL中auto_increment的基本特性
  4. jquery基本选择器标签名选择器
  5. comparator接口与Comparable接口的区别
  6. spring 集成shiro 之 自定义过滤器
  7. osg osgDB::Options noTexturesInIVEFile ForceReadingImage dds_flip
  8. xmlspy注册后打开报错的解决办法
  9. Robot Framework自动化测试环境的搭建
  10. 18-EasyNetQ:发生错误的情况
  11. Nginx访问控制
  12. Django中把SQLite数据库转换为Mysql数据库的配置方法
  13. sed 随笔
  14. 第一章 C++语言入门
  15. Spark学习笔记——RDD编程
  16. 最小二乘法多项式曲线拟合原理与实现 zz
  17. winform下通过webclient使用非流方式上传(post)数据和文件
  18. 设计模式之适配器模式(Adapter Pattern)
  19. [BZOJ4850][JSOI2016]灯塔(分块/决策单调性优化DP)
  20. mybatis中SQL语句运用总结

热门文章

  1. 《JAVA设计模式》之建造模式(Builder)
  2. L The Digits String(没有写完,有空补)
  3. JavaScript中的反柯里化
  4. C语言字符串复制
  5. 一、asp的写法
  6. MySQL--11 备份的原因
  7. python控制cpu使用率
  8. weblogic下载
  9. AngularJs双向绑定
  10. 【抓包工具之Fiddler】增加IP列;session高亮