浏览器原生控件上传PDF导致hash值不同

用户要求对上传的pdf计算hash排重,上线后发现排重失败

1、postman直接调用接口没有发现问题,每次获取的hash值是一样的

2、apifox网页版,调用接口发现问题,清除缓存后(将选择的文件删除重新选择),就会出现相同文件hash值不同

3、apifox本地安装版本和postman一样没有发现问题

问题:

1、尝试修改Content-Type,各种类型试了一下,包括流方式无效每次hash还是不同

2、发现每次上传时request的Content-Length字段都有微小的长度差别,说明在上传前已经不同了

3、尝试前端算好hash回传,值任然不同

4、用fiddler抓包,发现postman用httpclinet去上传的二进制包和用网页控件在浏览器上传的包除了分隔符不同,网页上传还多了一些pdf相关的描述?

5、尝试将PDF文件的扩展名修改为其他名字,如abc.pdf改成abc.upl,再次使用网页post上传,问题消失,每次hash都一样

6、尝试了在上传前使用j上代码修改文件名后上传,无效。所以应该是网页input file 控件在读取文件时就做了处理

这个不知道是浏览器解析内核就是这样规定的还是bug

相关推荐
AI小白的Python之路13 分钟前
数据结构与算法-排序
数据结构·算法·排序算法
DashVector23 分钟前
如何通过Java SDK检索Doc
后端·算法·架构
zzz93330 分钟前
transformer实战——mask
算法
一只鱼^_1 小时前
牛客周赛 Round 105
数据结构·c++·算法·均值算法·逻辑回归·动态规划·启发式算法
是阿建吖!1 小时前
【动态规划】斐波那契数列模型
算法·动态规划
啊阿狸不会拉杆1 小时前
《算法导论》第 27 章 - 多线程算法
java·jvm·c++·算法·图论
火车叨位去19492 小时前
力扣top100(day04-05)--堆
算法·leetcode·职场和发展
数据智能老司机2 小时前
面向企业的图学习扩展——面向图的传统机器学习
算法·机器学习
类球状2 小时前
顺序表 —— OJ题
算法
Miraitowa_cheems2 小时前
LeetCode算法日记 - Day 11: 寻找峰值、山脉数组的峰顶索引
java·算法·leetcode