浏览器原生控件上传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

相关推荐
kyle~3 小时前
算法---贪心算法(Greedy Algorithm)
算法·贪心算法
fashion 道格3 小时前
C 语言数组拼接:从基础实现到细节优化
算法
麦烤楽鸡翅3 小时前
pdf(攻防世界)
网络安全·pdf·ctf·misc·杂项·攻防世界·信息竞赛
头发还没掉光光4 小时前
Linux多线程之自旋锁与读写锁
linux·运维·算法
fashion 道格4 小时前
C 语言希尔排序:原理、实现与性能深度解析
数据结构·算法·排序算法
初夏睡觉4 小时前
P1048 [NOIP 2005 普及组] 采药
数据结构·c++·算法
小欣加油4 小时前
leetcode 1513 仅含1的子串数
c++·算法·leetcode·职场和发展
Less is moree4 小时前
PDF无法打印怎么解决?
pdf
树在风中摇曳4 小时前
【C语言预处理器全解析】宏、条件编译、字符串化、拼接
c语言·算法
CodeWizard~5 小时前
P7149 [USACO20DEC] Rectangular Pasture S题解
算法