我想使用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。
答案 0 :(得分:0)
您无法通过Phonegap文件传输发送二进制数据。
您的二进制数据必须转换为 BASE64 字符串,然后传输到服务器。同样的事情也适用于其他方式。
以下是如何使用Phonegap处理二进制数据传输的教程:http://blog.safaribooksonline.com/2012/03/01/phonegap-tip-binary-filesystem-data/