浏览器原生控件上传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 分钟前
jsPDF和html2canvas生成pdf,组件用的elementplus,亲测30多页,20s实现
前端·vue.js·pdf·html2canvas·jspdf
Vertira9 分钟前
pdf 合并 python实现(已解决)
前端·python·pdf
go546315846515 分钟前
修改Spatial-MLLM项目,使其专注于无人机航拍视频的空间理解
人工智能·算法·机器学习·架构·音视频·无人机
油泼辣子多加32 分钟前
【Torch】nn.BatchNorm1d算法详解
算法
nlog3n32 分钟前
基于 govaluate 的监控系统中,如何设计灵活可扩展的自定义表达式函数体系
算法·go
IT古董1 小时前
【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(2)神经网络整体结构
pytorch·神经网络·算法
ThetaarSofVenice1 小时前
垃圾收集相关算法Test
java·jvm·算法
小陈phd1 小时前
langchain从入门到精通(二十八)——RAG优化策略(六)集成多种检索器算法实现混合检索及问题转换总结
算法
是小王同学啊~1 小时前
(LangChain)RAG系统链路向量检索器之Retrievers(五)
python·算法·langchain
薰衣草23332 小时前
一天两道力扣(1)
算法·leetcode·职场和发展