我一直在用Javascript建立手动的多部分请求。我将使用FormData,但它不是可字符串化的,因此无法对其进行哈希处理。
我已经完成了请求,但是似乎无法正确读取文件。我有一个预感,这是一个编码问题。
当我读入文件时,它似乎已由于转换为字符串而损坏或损坏。我正在测试的文件是PDF。
原始文件如下:
%PDF-1.3
%ƒÂÚÂÎßÛ†–ƒ∆
5 0 obj
<< /Length 6 0 R /Filter /FlateDecode >>
stream
x•X…nG
通过以下方式读取文件时:
reader.onload = arrBufferCallback;
reader.readAsBinaryString(blob);
输出为:
%PDF-1.3
%Äåòåë§ó ÐÄÆ
5 0 obj
<< /Length 6 0 R /Filter /FlateDecode >>
stream
x¥XÉnG½÷WԨܬ»@AÜCC¬H
这完全是错误的。
我尝试了六种其他选择,例如:
var bytes = new Uint8Array(e.target.result);
resolve(String.fromCharCode.apply(null, bytes));
尝试使用TextDecoder
会变得更糟。
我所需要的只是字符串形式的原始文件内容吗?