Sau*_*abh 7 javascript fileapi cordova
我从API获取字节数组,如var byteArr = [12,-123,43,99,...],然后我将其转换为UTF-8字符串
var utf8_str = String.fromCharCode.apply([], new Uint8Array(byteArr));
Run Code Online (Sandbox Code Playgroud)
然后将UTF-8字符串转换为Base64字符串
var base64_str= window.btoa(utf8_str);
Run Code Online (Sandbox Code Playgroud)
现在我在Phonegap中通过FileWriter将UTF-8或Base64字符串写入文件(xyz.pdf/xyz.jpg),但是在打开它时会显示空白文件.
function gotWriteFile(dirEntry) {
dirEntry.getFile(FILE_NAME, {create: true, exclusive: false}, gotFileWriteEntry, failWrite);
}
function gotFileWriteEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, failWrite);
}
function gotFileWriter(writer) {
writer.onwriteend = function(evt) {
console.log("File write successfully....");
hideModal();
};
writer.write(utf8_str);
//writer.write(base64_str);
}
Run Code Online (Sandbox Code Playgroud)
什么是解决方案的家伙......?
Sau*_*abh 10
我找到了在Phonegap中按字节数组创建文件的解决方案.
在phonegap中,Android和iOS支持文本和二进制数据写入文件.所以我将BYTE数组转换为BINARY数组,然后由FileWriter编写.
var byteArr=[12,-123,43,99, ...] ;
var UTF8_STR = new Uint8Array(byteArr); // Convert to UTF-8...
var BINARY_ARR=UTF8_STR.buffer; // Convert to buffer...
Run Code Online (Sandbox Code Playgroud)
然后将'BINARY_ARR'传递给FileWriter以写入文件.
function gotFileWriter(writer) {
writer.onwriteend = function(evt) {
console.log("File write successfully....");
};
writer.write(BINARY_ARR);
}
Run Code Online (Sandbox Code Playgroud)
祝你今天愉快.. :)
| 归档时间: |
|
| 查看次数: |
10224 次 |
| 最近记录: |