javascript - 从Ionic中的FILE_URI获取文件名和扩展名

时间:2015-12-31 11:26:48

标签: javascript cordova ionic ngcordova

我需要一些关于如何获取文件名称的提示,该文件已由cordova相机插件挑选/拍摄。这是代码,我有一个图片:

var options = {destinationType: Camera.DestinationType.NATIVE_URI};
options.sourceType = sourceType;
$cordovaCamera.getPicture(options).then(function (newURI) {
  imageFileURI = newURI;
  console.log('NATIVE_URI:\n' + imageFileURI);
  //I need to get the file name and extension here
  window.plugins.Base64.encodeFile(imageFileURI, function (base64Image) {
    base64Data = base64Image;  
  }, function (error) {
    console.log('Error while converting to base64: ' + error);
  });
}, function (error) {
 console.log('Error while picking a photo: ' + error);
});

有没有办法,如何获取文件名和扩展名,我需要它? 谢谢

3 个答案:

答案 0 :(得分:2)

var fileName = imageFileURI.substr(imageFileURI.lastIndexOf(' /')+ 1);

以上代码获取文件名。

var fileExtension = filename.substr(filename.lastIndexOf(' /')+ 1);

这将获得文件扩展名。

答案 1 :(得分:1)

不确定回答这个问题是否为时已晚。

这就是我解决确切问题的方法。问题是,当图像在手机存储器中时,它会为您提供文件URI;当来自外部存储器时,它会为您提供内容:// url。

解决方案是使用此插件。 cordova-plugin-filepath

您可以阅读上面的github页面了解相关说明。这就是我使用它的方式。

  window.FilePath.resolveNativePath(
    ImageURI, 
    function(imagePath){
      $(el).html(imagePath);
    }, 
    function(){
      alert('Could not retrieve the image path'); 
    });

希望这会有所帮助。

答案 2 :(得分:0)

有几点想法:

  • 正如海狸所说,试试FILE_URI
  • 看起来您正试图在Base64中获取图片,对吗?如果是这样,您可以使用ngCordova file插件并使用readAsDataURL()
  • 如果这些都不起作用,您可以使用resolveLocalFileSystemURL