使用Phonegap FileTransfer上传blob - 并接收二进制文件

时间:2013-05-09 14:35:12

标签: cordova binary base64 file-transfer

我想使用phonegap将一些二进制数据(例如图像或zip)上传到服务器,并接收二进制文件作为响应。可能吗? 虽然上传与FileTransfer以及存储在磁盘上的文件非常吻合,但我无法使用blob

var blob = new Blob([something], {type: 'application/zip'});
var blobUrl = window.URL.createObjectURL(blob);
var ft = new FileTransfer();
ft.upload(blobURL, encodeURI('http://server'), win, fail, options);

blobURL当然就像

blob:1234-...

找不到FileTransfer。我首先尝试保存blob,将其路径传递给FileTransfer - 但Phonegaps FileWriter无法处理blob

使用xhr不是一个选项,因为您无法在Phonegap(WP8)中使用它接收二进制文件。 Mimetypeoverride Trick在这种情况下不起作用,因为Internet Explorers xhr没有此选项。

我正在使用Windows Phone 8。

1 个答案:

答案 0 :(得分:0)

您无法通过Phonegap文件传输发送二进制数据。

您的二进制数据必须转换为 BASE64 字符串,然后传输到服务器。同样的事情也适用于其他方式。

以下是如何使用Phonegap处理二进制数据传输的教程:http://blog.safaribooksonline.com/2012/03/01/phonegap-tip-binary-filesystem-data/