0

charset=x-user-definedでバイナリデータを処理するために使用されるいくつかのHTML5機能(BlobBuilder、ArrayBuffer)およびHTML5以前のハック( )がありXMLHttpRequestます。

私の知る限り、Safariが、ユーザーがインタラクティブに選択し、として送信されるファイルにないバイナリデータをアップロードすることはできません"multipart/form-data"

実際、私が送信しようとしているデータはすでにファイルシステムにあり、そのfile://URLがあります。これはPhoneGapアプリです。ただし、セキュリティ上のリスクがあるため、ブラウザにそれを受け入れさせる方法はありません。また、PhoneGapのFileTransfer機能は、プログレスバーのサポートがないため役に立ちません。

この時点で、HTMLファイルとJavaScriptファイルがダウンロードされてクライアント側に保存されるため、互換性を完全に排除するつもりです。そして、このアプリはすでにiPhone 4を必要としているので、最近のブラウザバージョンを要求することができます。Safari 5.1をバイナリでアップロードする方法はありますか?

4

1 に答える 1

1

おそらく、Phonegap用のファイルアップローダープラグイン(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 に答える