在cordova getPicture中获取所选视频或图像的mimeType

时间:2014-05-15 09:03:14

标签: cordova

我正在使用navigator.camera.getPicture(onSuccess, onFail, options)来挑选图片或视频,但

fileEntry.getFormatData(function (metadata) {
    alert("mimeType = " + metadata.type);
}, function () {
    alert("fail");
});


alert(JSON.stringify(fileEntry.getMetadata()));
alert('to URL ' + fileEntry.toURL());
alert('name' + fileEntry.name)

以上代码均无效!

实际问题是,当我从Photolibrary中选择一个视频时,它没有提供扩展名,当我使用fileTransfer插件上传它时,它会提供content://zxxxxx/123这样的路径,它使用mimeType image / jpeg上传,我能做什么这样做?我该如何解决这个问题......所以在服务器上没有转码工作

1 个答案:

答案 0 :(得分:0)

        fileEntry.file(function(file) {
            var slice = file.slice(0,4);

            var reader = new FileReader();
            reader.onload = function( e ) {
                console.log('in reader.load');
                onSuccess( fileEntry.toURL(), file.type );
            };
            reader.onerror = function( e ) {
                console.log('error trying to get file: ' + fileName);
            };
            reader.readAsArrayBuffer( slice );
        });

这样,您只需加载前4个字节来检测mime类型,并避免将完整文件加载到内存