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

相关推荐
福大大架构师每日一题4 小时前
go-zero v1.9.3 版本更新:一致性哈希负载均衡、gRPC优化、链路追踪修复、ORM完善等重要提升
golang·负载均衡·哈希算法
Savior`L5 小时前
二分算法及常见用法
数据结构·c++·算法
mmz12076 小时前
前缀和问题(c++)
c++·算法·图论
努力学算法的蒟蒻6 小时前
day27(12.7)——leetcode面试经典150
算法·leetcode·面试
甄心爱学习7 小时前
CSP认证 备考(python)
数据结构·python·算法·动态规划
kyle~7 小时前
排序---常用排序算法汇总
数据结构·算法·排序算法
AndrewHZ8 小时前
【遥感图像入门】DEM数据处理核心算法与Python实操指南
图像处理·python·算法·dem·高程数据·遥感图像·差值算法
CoderYanger8 小时前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节
有时间要学习8 小时前
面试150——第二周
数据结构·算法·leetcode