0

有几个 HTML5 功能(BlobBuilder、ArrayBuffer)和 HTML5 之前的 hacks ( charset=x-user-defined) 用于处理XMLHttpRequest.

据我所知,没有什么可以让 Safari 上传不在用户交互选择的文件中的二进制数据,并以"multipart/form-data".

事实上,我试图发送的数据已经在文件系统中,而且我有一个file://指向它的 URL。这是一个PhoneGap 应用程序。但是由于存在安全风险,没有办法让浏览器接受,而且PhoneGap的FileTransfer功能没有用,因为它缺乏进度条支持。

在这一点上,我愿意完全放弃兼容性,因为 HTML 和 JavaScript 文件将被下载并存储在客户端。而且该应用程序已经需要 iPhone 4,因此我可以要求最新的浏览器版本。有没有办法让 Safari 5.1 上传二进制文件?

4

1 回答 1

1

也许 Phonegap 的 File Uploader 插件(iOS 版iPhone 版)可以提供帮助?它有一个进度回调。

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);

    }
);
于 2012-07-08T15:21:36.553 回答