我正在使用Camera.getPicture() API来捕获图像或从图库中选择图像。当我用相机拍照时,它返回给我一个包含正确的URL、文件名和扩展名的文件条目。但是当我从Gallery中选择一个文件时,它会返回“FileEntry.fullPath”作为/com . Android . providers . media . documents/document/image:322,有时会返回/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);} );
}
在phonegap获取图片的方法navigator.camera.getPicture(cama成功, camaError,[camaOptions]);
我们可以给摄影师选择
{ quality : 75,
destinationType : Camera.DestinationType.DATA_URL,
sourceType : Camera.PictureSourceType.CAMERA,
allowEdit : true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false };
首先检查选项。
Android怪癖
仅适用于Android 4.4:Android 4.4引入了一个新的存储访问框架,使用户可以更轻松地浏览和打开所有首选文档存储提供商的文档。Cordova还没有与这个新的存储访问框架完全集成。因此,当destinationType为FILE_URI时,当用户从“最近”、“驱动器”、“图像”或“外部存储”文件夹中进行选择时,getPicture()方法将不会正确返回图片。然而,如果用户首先通过“图库”应用程序,他们将能够正确地选择任何图片。此问题的潜在解决方法记录在此StackOverflow问题中。请参阅CB-5398以跟踪此问题。
Android使用意图在设备上启动相机活动来捕获图像,而在内存不足的手机上,Cordova活动可能会被杀死。在这种情况下,图像可能不会出现时 Cordova 活动恢复。
如果你得到了fileEntry,你可以使用file()方法得到mettadatas
function cameraSuccess(urls) {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(){
// alert('success requestFileSystem');
}, function(){
//error
});
window.resolveLocalFileSystemURI(urls, function(fileEntry){
fileEntry.file(function(file){
// alert(JSON.stringify(file)); //view full metadata
var type = file.type;
var nameoffile = file.name;
}, function(){
//error
});
},function(){
// error
} );
最后一个选项是创建一个自定义插件来查找图像类型
使用这个插件:https://www.npmjs.com/package/cordova-plugin-filepath.,我能够将“内容://”URI转换成“文件://”URI
获得“file://”URI后,我就可以使用Cordova的解析LocalFileSystemURL()函数。
希望这有帮助。
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*/});
});
}
问题内容: 我正在使用PostgreSQL 9.3。 我想复制一些数据库记录。由于我正在为表使用自动递增的pk ID,因此我想将ID映射从生成的重复记录ID找回原始记录。例如,假设我有一个包含2条记录的表: 使用SQL: 我希望看到类似的映射: 关于如何填写上面的问号以使其起作用的任何想法吗?非常感谢! 问题答案: 这对于来说会更简单,在此子句中可以看到加入到更新中的其他行: 仅使用SQL返回UP
问题内容: 在Node.js中使用Mongoose,您可以使用find返回一些字段。例如。 但我似乎无法弄清楚如何使用findOneAndUpdate返回某些字段。 有人做到过吗?我在文档中找不到它。 问题答案: 从说明书,该参数需要一个关键的它,因为还有其他的细节,比如和地方适用。您 还 需要以下选项: 您也可以使用 请注意,没有返回的文档处于处理更新修改 之前 的状态。有时候这就是您的意思,但
由于我支持Kitkat版本的应用程序,现在从gallery中检索文件的方式有所不同。 我更喜欢这个Android画廊在奇巧返回不同的意图Uri。ACTION_GET_CONTENT检索文件从画廊和成功的工作,但我需要绝对路径的文件,我得到 对于下面的19个版本,我们使用了不同的uri,通过这种方式我得到了路径 但在19版本中,它会给我空值如何获得用户选择的图像文件的绝对路径。 谢谢
问题内容: 使用SQL Server 2012: 产量 必须指定要从中选择的表 这正是我所期望的。 但有趣的是 返回1。 有人可以向我解释这里算什么吗? 编辑:并可能包括来源… 问题答案: SQL Server(在幕后)有效地将from应用于仅具有一行的虚拟表。因此,您将得到1作为计数。 会做同样的事情,例如,一次返回“ test”。 就像Oracle中的DUAL表,DB2中的SYSDUMMY1等
我有一个选择框,上面附有国家值(例如英国) 我的目标是根据所选的选项在页面上显示国旗图像 无法在选择选项中插入图像路径,因此我希望能够提取选项值的最后2个字符,并在生成的图像src eg中使用它们 印度 这可以用js来完成吗? 我有以下与jQuery返回所选选项的文本值的时刻,但想在图像URL实现这一点。
我在Cassandra列族的动态列中插入了字符串和整数值。当我查询CQL的值时,它们显示为十六进制编码的位。 我能以某种方式告诉查询将值解码为字符串或整数吗? 如果这更容易,我也很乐意在CLI中执行此操作。在那里,我看到你可以指定