Zer*_*rho 6 javascript buffer filestream titanium appcelerator
我有一个SOAP API,它返回一个文件,该文件分为几个base64字符串编码的块
我无法将其保存到文件系统而不会破坏它
正确保存的方法是什么?
我试过很多方面
var f = Ti.FileSystem.getFile(Ti.FileSystem.tempDirectory, 'test.pdf');
Run Code Online (Sandbox Code Playgroud)
...
var blobStream = Ti.Stream.createStream({ source: fileString, mode: Ti.Stream.MODE_READ });
var newBuffer = Ti.createBuffer({ length: fileString.length });
f.write(fileString);
Run Code Online (Sandbox Code Playgroud)
要么
var data = Ti.Utils.base64decode(fileString);
var blobStream = Ti.Stream.createStream({ source: data, mode: Ti.Stream.MODE_READ });
var newBuffer = Ti.createBuffer({ length: data.length });
var bytes = blobStream.read(newBuffer);
f.write(fileString);
Run Code Online (Sandbox Code Playgroud)
要么
var data = Ti.Utils.base64decode(fileString);
var blobStream = Ti.Stream.createStream({ source: data, mode: Ti.Stream.MODE_READ });
var newBuffer = Ti.createBuffer({ length: data.length });
var bytes = blobStream.read(newBuffer);
f.write(bytes);
Run Code Online (Sandbox Code Playgroud)
但我不明白哪一条是正确的道路
我是否必须自己转换回byteArray字符串?保存它的正确方法是什么?
我是否必须从字符串或...创建缓冲区?
小智 1
我认为该文件的 base64enc 无效或不完整,我已经使用 bash 和 base64 utils 对其进行了测试。您可以执行这些步骤。
将 base64 字符串复制并粘贴到名为 pdf.base64 的文件中,然后运行以下命令:
cat pdf.base64 | base64 --decode >> out.pdf
Run Code Online (Sandbox Code Playgroud)
输出文件不是有效的 pdf。
您可以尝试对有效的 pdf 文件进行编码和解码,以查看生成的二进制文件:
cat validfile.pdf | base64 | base64 --decode >> anothervalidfile.pdf
Run Code Online (Sandbox Code Playgroud)
尝试检查你是否正确地链接了块,或者只是与构建soap api 的人打个电话。
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |