当前位置:网站首页>项目笔记——随记
项目笔记——随记
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.判断普通表单项/文件上传项
边栏推荐
猜你喜欢
随机推荐
5月leetcode-C#刷题日志(持续更新中)
【LeetCode-56】合并区间
【LeetCode-69】x的平方根
非对称加密——网络安全
无胁科技-TVD每日漏洞情报-2022-7-28
2022年全国职业技能大赛网络安全竞赛试题B模块自己解析思路(3)
分布式事物学习
Error in render: “TypeError: Cannot read properties of undefined (reading ‘commentsContent‘)“
胖鸟博客之勒索病毒紧急处理文件恢复及防范方案
OpenGL 简化点光源与平行光的对比实验
Django QuerySet.order_by() SQL注入漏洞复现
CLR via C# 第一章 CLR的执行模型
C语言预处理
解决AttributeError: ‘NoneType‘ object has no attribute ‘val‘ if left.val!=right.val:Line 17 问题
【LeetCode-36】有效的数独
【LeetCode-74】搜索二维矩阵
IP证书申请
Lua 快速入门(四)——多脚本执行
C语言实现三子棋(代码详解)
无胁科技-TVD每日漏洞情报-2022-8-3









