11

全て、

PhoneGap / Cordova 2を使用して、写真のファイルサイズ(つまり、サイズではなく、ディスク内の実際のファイルサイズ)を取得しようとしています。これまでのところ、それを把握する唯一の方法は、base64変換、次に基本的なものです。 b64文字列のバイトの算術。しかし、ファイルサイズを取得するためのよりエレガントな方法があるかどうか疑問に思いました。TIA。

明確化:iOS5およびAndroid2.3で動作する必要があります。

4

1 に答える 1

24

そうです、Camera.getPictureコマンドから画像へのURLがある場合は、それをwindow.resolveLocalFileSystemURLコマンドに渡します。このコマンドの成功コールバックは、FileEntryオブジェクトで呼び出されます。次に、Fileオブジェクトを使用して成功コールバックを呼び出すFileEntryの「file」メソッドを呼び出します。次に、Fileオブジェクトのsizeプロパティを確認できます。

何かのようなもの....

function takePhoto() {
    navigator.camera.getPicture(gotPhoto, onError, { quality: 50,
        destinationType: navigator.camera.DestinationType.FILE_URI,
        sourceType: navigator.camera.PictureSourceType.CAMERA });
}

function gotPhoto(imageUri) {
    window.resolveLocalFileSystemURI(imageUri, function(fileEntry) {
        fileEntry.file(function(fileObj) {
            console.log("Size = " + fileObj.size);
        });
    });
}

それはうまくいくはずですが、私は頭のてっぺんからコードを書いただけです。

于 2012-08-17T03:16:29.603 に答える