有几个HTML5功能(BlobBuilder,ArrayBuffer)和HTML5之前的黑客攻击(charset=x-user-defined
)用于处理XMLHttpRequest
中的二进制数据。
据我所知,没有任何东西可以让Safari上传不在用户交互选择的文件中的二进制数据,并以"multipart/form-data"
传输。
实际上,我尝试发送的数据已经存在于文件系统中,我有一个file://
URL。这是一个PhoneGap应用程序。但是由于安全风险,没有办法让浏览器接受这一点,而且PhoneGap的FileTransfer功能没用,因为它缺乏进度条支持。
此时,我愿意完全抛出兼容性,因为HTML和JavaScript文件将被下载并存储在客户端。该应用程序已经需要iPhone 4,所以我可以要求最近的浏览器版本。有没有办法让Safari 5.1上传二进制文件?
答案 0 :(得分:1)
也许Phonegap的文件上传器插件(iOS version,iPhone version)可以提供帮助吗?它有一个进度回调。
progress
调用上传进度。签名应为function(bytesUploaded, totalBytes)
文档示例:
window.plugins.fileUploader.uploadByUri(
'http://example.com/upload',
'file://path/to/file.jpg',
{foo: 'bar'},
'myPhoto',
'anImage.jpg',
'image/jpeg',
function(result) {
console.log('Done: ' + result);
},
function(result) {
console.log("Error: " + result);
},
function(loaded, total) {
var percent = 100 / total * loaded;
console.log('Uploaded ' + percent);
}
);