JavaWeb-上传
一.上传
1.上传对表单的限制
* 表单的提交方式必须为post,即method="post"
* 表单必须有一个属性enctype="multipart/form-data",在form标签上添加
* 必须添加文件表单项,比如:<input type="file" name="xxx" .../>
2.上传对servlet的限制
* 当表单有enctype="multipart/form-data"时,request.getParametere()整个方法作废了,它的返回值永远时是null,对所有表单项失效
* 想获取表单的值以及上传的文件内容,可以通过一个流:request.getInputStream(),这个流包含了整个请求的体
二.多部件表单(添加了enctype="multipart/form-data")的请求体
1.请求体由多个部件的格式组成,每一个部件对应一个表单项
2.每一个部件由属于自己的请求头,空行和请求体
3.普通表单项
* 普通表单项有一个头:Content-disposition,包含了name="xxx",即表单项名称,它的体是表单项的值
4.文件表单项
*文件表单项有两个头:
Content-disposition,包含了name="xxx",即表单项名称,还有filename="xxx",即上传文件的名称
Content-Type,表示该上传文件的MINE类型,例如:image/jpeg,表示上传的是图片,图片类型是jpg的拓展名称
*它的体是上传文件的内容(内容进行了编码处理后)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~