HttpServletRequest 对文件上传的支持
2024-09-06 01:01:13
此前,对于处理上传文件的操作一直是让开发者头疼的问题,因为 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,则不能使用上面的两个方法,否则将抛异常。
最新文章
- 疑难问题解决备忘录(2)——ubuntu12.04分配swap
- 关闭英文拼写检查,关闭xml验证
- MySQL中auto_increment的基本特性
- jquery基本选择器标签名选择器
- comparator接口与Comparable接口的区别
- spring 集成shiro 之 自定义过滤器
- osg osgDB::Options noTexturesInIVEFile ForceReadingImage dds_flip
- xmlspy注册后打开报错的解决办法
- Robot Framework自动化测试环境的搭建
- 18-EasyNetQ:发生错误的情况
- Nginx访问控制
- Django中把SQLite数据库转换为Mysql数据库的配置方法
- sed 随笔
- 第一章 C++语言入门
- Spark学习笔记——RDD编程
- 最小二乘法多项式曲线拟合原理与实现 zz
- winform下通过webclient使用非流方式上传(post)数据和文件
- 设计模式之适配器模式(Adapter Pattern)
- [BZOJ4850][JSOI2016]灯塔(分块/决策单调性优化DP)
- mybatis中SQL语句运用总结