Servlet - 3.0下用@MultipartConfig注解方式上传文件详解
Servlet3.0之前上传文件通常借助commons-fileupload-xxx.jar和commons-io-xxx.jar两个jar包,其中相关的API较多,写起来非常不便。而在Servlet3.0时,改进了部分API,可以通过@MultipartConfig注解以及相关的方法比较方便的进行文件上传。
一.常用的与文件上传相关的API与注意点:
1.HttpServletRequest提供的方法
- Part getPart(String name):根据名称获取文件上传域
- Collection<Part> getParts():获取所有的文件上传域
2.Part中常用的方法
- String getContentType():获取上传文件的文件类型
- long getSize():上传文件的大小
- String getSubmittedFileName():上传文件的原始文件名
- String getName():获取<input name="upload" ...>标签中name属性值
- String getHeader(String name):获取请求头部
- Collection<String> getHeaderNames():获取所有请求头部名称
- InputStream getInputStream():获取上传文件的输入流
- void write(String path):保存文件至服务器
3.表单enctype属性说明
在使用<input type="file" name="upload">标签时,需要设置enctype="multipart/form-data",指定表单数据的编码方式。enctype属性值说明:
- application/x-www-form-urlencoded:默认编码方式,只处理表单中的value属性值,这种编码方式会将表单中的值处理成URL编码方式
- multipart/form-data:以二进制流的方式处理表单数据
- text/plain:当表单action属性为mailto:URL形式时比较方便,适用于直接通过表单发送邮件方式
4.@MultipartConfig注解属性说明
属性 类型 是否必需
maxFileSize long 否
maxRequestSize long 否
fileSizeThreshold int 否
location String 否
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751821.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?