当前位置:网站首页>项目笔记——随记
项目笔记——随记
2022-08-11 05:32:00 【kerodaisuki】
文件上传三要素
1.表单提交方法:POST(get方式提交有大小限制,post没有)
2.表单的enctype属性:必须设置为multipart/form-data
enctype就是encodetype就是编码类型的意思
multipart/form-data是多部件文件上传 , 指表单数据由多部分构成,既有文本数据,又有文 件等二进制数据的意思
3.表单必须有文件上传项:file ,必须要有name属性和值
注意: 默认情况下,表单的enctype的值是application/x-www-form-urlencoded,不能用于文件 上传,只有使用了multipart/form-data,才能完整的传递文件数据
服务端获上传的文件
1.通过request获取请求体的内容
2.解析请求体,多部件上传的特点是,每个input都是一个表单项。
根据分隔符将请求中所有的内容切割成数组,数组中的每一个元素都是一个表单项
3.遍历数组,根据filename 来判断哪个是普通的表单,哪个是文件上传项
4.获取到普通表单项中的内容,通过属性name获取
5.获取文件上传项内容
文件名
文件内容
6.使用IO将文件内容保存到服务器中
FileUpload工具类
1.导入依赖
FileUpload包可以很容易地将文件上传到Web应用程序
IOUtils封装了java中常见操作,使用十分方便
2. FileUpload 核心类介绍
DiskFileItemFactory:磁盘文件项工厂,读取文件时相关的配置,比如:缓存的大小,临时目录的位置
ServletFileUpload:文件上传的一个核心类
FileItem:代表每一个表单项
3. 文件上传的API的详解
ServletFileUpload
isMultipartContent(request); :判断是否是一个文件上传的表单
parseRequest(request); :解析request获得表单项的集合
setHeaderEncoding("utf-8") :设置上传的文件名的编码格式
FileItem
isFormField() :判断是否是普通表单项
getFiledName():获得表单的name属性
item.getString(): 获得表单的value值
getName() :获得上传文件的名称
getInputStream() :获得上传文件
delete() : 删除临时文件
4.文件上传后台代码编写
FileUpload使用步骤:
1.创建磁盘文件项工厂
2.创建文件上传的核心类
3.解析request——获得文件项集合
4.遍历文件项集合
5.判断普通表单项/文件上传项
边栏推荐
猜你喜欢
随机推荐
OpenGL 简化点光源与平行光的对比实验
开发公众号授权遇到的redirect_uri参数错误
C# 基础之字典——Dictionary(二)
C-8月1日-递归与动态内存管理
软件使用代码签名证书的好处和必要性
Unity Mesh、MeshFilter、MeshRenderer扫盲
【LeetCode-34】在排序数组中查找元素的第一个和最后一个位置
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(6)
网络安全学习小结--kali基本工具、webshell、代码审计
无胁科技-TVD每日漏洞情报-2022-7-28
Lua 快速入门(三)——表(Table)
【LeetCode-73】矩阵置零
星盟-pwn-babyfmt
C-自定义类型(结构体、枚举、联合)
程序集与反射技术(C#)
Vulnhub靶机--DC7
实操指南:多个域名该买哪种SSL证书?
无胁科技-TVD每日漏洞情报-2022-8-4
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(3)
[HTB]渗透Backdoor靶机