我的设备上有一个存储在以下文件夹中的文件:
/opt/share/folder/image.jpg
我想使用一些ajax请求在我的服务器上上传此文件,就像我使用标准HTML表单一样。
经过几次搜索,我来创建一个Blob文件并将其上传到服务器上;这很有效。但问题是我到达的jpeg 已损坏并包含一套数字和逗号(技术上,源文件的字节数):
255,216,255,224,0,16,74,70,73,70,0,1,1,0,0,1,0,1,0,0,255,219,0,67,0,8,6,6,7,6,5,8,7,7
Tizen的Filesystem API允许我打开这个文件并读取它的字节 - 这就是我的工作。所以我使用以下代码读取字节,创建一个blob并将其上传到我的服务器上:
var raw = fs.readBytes(1024);
var blob = new Blob([raw], {type:"image/jpeg"});
var formData = new FormData();
formData.append('screenCapture', blob);
$.ajax({
type: 'post',
url: myurl,
processData: false,
contentType: false,
data: formData,
success: function(data){
...
},
error: function(jqxhr, status, msg){
console.log("ERROR! " + msg);
}
});
答案 0 :(得分:1)
我终于发现我的代码出了什么问题。
实际上,readBytes返回一个对应于字节的数字数组,但是数组没有格式化为字节数组。
从这个数组中创建一个新的Uint8Array就可以了:
var raw = fs.readBytes(1024);
var byteArray = new Uint8Array(raw);
var blob = new Blob([byteArray], {type:"image/jpeg"});