当前位置: 首页 > 知识库问答 >
问题:

当图像文件名包含空格时,Phonegap camera getPicture在Android中失败

韦高谊
2023-03-14

我的phonegap相机插件版本是0.3.4和phonegap cli的4.1.2-0.22.10,android phonegap平台版本是3.6.4,构建版本3.5.0在config.xml测试Android 4. x,下面是我的代码片段从三星手机从图库或Dropbox获取图像:

navigator.camera.getPicture(
uploadPhoto,
function(message)
{
  console.log("Get Picture Failed:"+ message);
}
,
{
  quality: 50,
  allowEdit:false,
  correctOrientation: true,
  targetWidth: 800,
  destinationType: navigator.camera.DestinationType.FILE_URI, 
  sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
}
);

当我从图库中选择图像时,无论选择哪种目标类型,它始终采用native_uri(content://)而不是file_uri(FILE:///)。但是,当应用尝试通过 dropbox 访问图像时,无论选择哪种目标类型,返回的 uri 始终file_uri。现在

  • 如果文件名中没有空格,例如“ Photo7.jpg”,那么它适用于所有情况。
  • 如果文件名中确实有空格,例如“Photo 7 new.jpg”,那么如果它驻留在图库中,则可以正常工作,因为始终使用native_uri并消除空间。请注意,file_uri仍包含文件名中的空格,但 getpicture 方法未使用。
  • 现在,当应用程序尝试通过Dropbox访问相同的图像“照片7 new.jpg”时,问题就出现了。在这种情况下,返回的 uri 始终file_uri并包含空格。这会使相机 API 的 getpicture 方法失败,并执行失败回调,并显示消息“获取图片失败:无法创建位图!

有没有办法通过调整phonegap/cordova代码来容纳空间?否则,是否有编码_uri或其他任何方法的解决方案?谢谢你的帮助!

共有1个答案

澹台镜
2023-03-14

您必须使用JS编码器URI函数对url进行编码。有关详细答案,请查看以下答案。https://stackoverflow.com/a/42249021/6778969

 类似资料:
  • 问题内容: 我想从Android应用程序执行ffmpeg,非常像这里所述:将FFmpeg与Android-NDK结合使用。 执行以下命令可以正常工作: 要么 但是,当输入或输出文件名包含空格时,ffmpeg失败,并显示“找不到文件”错误: FFMPEG对于包含空格的文件也失败,但引用如下: 如何正确将包含空格的文件名传递给ffmpeg命令? 问候, 问题答案: 我终于明白了。我忘记了一种可能性,而

  • 问题内容: 我是Java的新手,因此尝试将我的项目之一从C转换为Java,以便将其与另一个Java程序结合在一起。使用Runtime.exec()时,很难获得正确的结果。我有以下程序段,而Java将忽略以处理给定的命令。 这里的问题是文件名“ metabolic waste.txt”。没有空间时,相同的命令起作用。我知道我必须将转义字符用于空间,并且做到了。我正在研究Ubuntu btw。 我也尝

  • 问题内容: 我处理了大量直观的示例测试案例。是否有任何方便的方法将它们包含在Java源代码中并在Javadocs中进行链接,因此我的IDE可以在编码时自动显示它们(通过在IDE中调用Javadoc渲染器功能)? 我尝试将图像放置在Java源代码旁边并使用,但是它没有使用(我使用了png)。 (注意-在这种情况下,它在我的测试源中) 问题答案: 由于您没有显示任何消息来源,所以我只能做个玻璃球猜测…

  • 问题内容: 我是Django的新手,我正尝试通过一个正在开发的简单项目“ dubliners”和一个名为“ book”的应用程序来学习它。目录结构是这样的: 我有一个JPG文件,需要在每个网页的页眉中显示。我应该在哪里存储文件?我应该使用哪个路径来使用模板显示标签?我已经尝试过各种位置和路径,但到目前为止没有任何效果。 … 感谢您在下面发布答案。但是,我尝试了图像的相对路径和绝对路径,但仍然在网页

  • 问题内容: 我正在使用django,并且我有一个名为models.admin.py的文件,我想在models.py中执行以下操作: 但是,使用双引号引起了语法错误。但是如果我只是做 然后我得到“导入错误:没有名为管理员的模块” 有什么方法可以从名称中带有句点的python文件导入? 问题答案: 实际上,您 可以 导入名称无效的模块。但是您需要使用它,例如,假设文件名为,则可以 但阅读文档上,并开始

  • 我有一个签名的PDF文件。有了这个功能,它利用了iTextSharp库,我找到了证书p7m签名: 现在...我如何提取与签名相关的图像(位图)?可能吗?谢谢,路易吉