我正在使用Camera.getPicture()API来捕获图像或从GALLERY中选择图像.当我使用相机拍摄照片时,它会返回FileEntry,其中包含带有文件名和扩展名的正确URL.但是当我从Gallery中选择一个文件时,它会将"FileEntry.fullPath"返回为/com.android.providers.media.documents/document/image%3A322,有时还会返回/ media/external/images/media/319
我想要的是,我想验证支持的文件类型(即jpg/jpeg)和实际文件名.
有没有办法获得带有扩展名的文件名,该文件名已被选中.
提前致谢.
代码片段:
var data = {};
if( type === CAMERA){
data = {
quality: quality,
destinationType: FILE_URI,
encodingType: JPEG, targetWidth: 1200, targetHeight: 1200,
saveToPhotoAlbum: true
};
}
else
{
data = {
destinationType: FILE_URI,
sourceType: PHOTOLIBRARY,
mediaType: ALLMEDIA
};
}
navigator.camera.getPicture(
successCallback, errorCallback, data
);
//The success callback method is :
successCallback: function(imageURI, param)
{
//HERE THE imageURI value is coming with different format if selected from GALLERY
window.resolveLocalFileSystemURI(imageURI,
function(fileEntry) {fileEntry.file(onSuccess,onError);},
function(evt) {onError.call(this,evt.target.error);} );
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我能够使用此插件从"content://"URI转换为"file://"URI:https://www.npmjs.com/package/cordova-plugin-filepath.
获得"file://"URI后,我就可以使用Cordova的resolveLocalFileSystemURL()函数了.
希望这可以帮助.
if (fileUri.startsWith("content://")) {
//We have a native file path (usually returned when a user gets a file from their Android gallery)
//Let's convert to a fileUri that we can consume properly
window.FilePath.resolveNativePath(fileUri, function(localFileUri) {
window.resolveLocalFileSystemURL("file://" + localFileUri, function(fileEntry) {/*Do Something*/});
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6386 次 |
| 最近记录: |