将图像保存到设备并在 cordova-plugin-file-transfer returns ENCODING_ERR 中使用它
Saving image to device and using it in cordova-plugin-file-transfer returns ENCODING_ERR
我正在尝试向现有的 cordova 插件添加功能。该插件不允许 return 特定图像的 URI,而这正是我所需要的。为此,我必须创建图像的本地副本。我从来没有在 Android 上使用过 Java 或一般的 cordova-plugins。
我的更改似乎工作正常。文件被创建并且插件 return 是该文件的 URI(以 /data/app/cache/image.jpg
的形式)。
但是,当我将它传递给 cordova-plugin-file-transfer 时,出现错误:FileError {code: 5, message: "ENCODING_ERR"}
。我在这里 https://github.com/apache/cordova-plugin-file/#list-of-error-codes-and-meanings 找到了错误代码,但这对我没有任何帮助。
这是保存文件的代码片段:
File outputDir = getContext().getCacheDir();
File outputFile = new File(outputDir, "cdvphotolibrary" + photoNameId);
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outputFile));
bos.write(photo.bytes);
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
callbackContext.error(e.getMessage());
}
callbackContext.success(outputFile.getAbsolutePath());
我在 Whosebug 上阅读了很多关于在 Android 上保存图像的帖子,但它们并不特定于 Android,并且一些解决方案(例如使用 ImageIO)不起作用。
如果有人能指出正确的方向,那将非常有帮助。
我找到了一个解决方案,我只需要在字符串前添加 file://
。
所以最后 URI 是 file:///data/app/cache/image.jpg
并且文件插件能够读取它。
我正在尝试向现有的 cordova 插件添加功能。该插件不允许 return 特定图像的 URI,而这正是我所需要的。为此,我必须创建图像的本地副本。我从来没有在 Android 上使用过 Java 或一般的 cordova-plugins。
我的更改似乎工作正常。文件被创建并且插件 return 是该文件的 URI(以 /data/app/cache/image.jpg
的形式)。
但是,当我将它传递给 cordova-plugin-file-transfer 时,出现错误:FileError {code: 5, message: "ENCODING_ERR"}
。我在这里 https://github.com/apache/cordova-plugin-file/#list-of-error-codes-and-meanings 找到了错误代码,但这对我没有任何帮助。
这是保存文件的代码片段:
File outputDir = getContext().getCacheDir();
File outputFile = new File(outputDir, "cdvphotolibrary" + photoNameId);
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outputFile));
bos.write(photo.bytes);
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
callbackContext.error(e.getMessage());
}
callbackContext.success(outputFile.getAbsolutePath());
我在 Whosebug 上阅读了很多关于在 Android 上保存图像的帖子,但它们并不特定于 Android,并且一些解决方案(例如使用 ImageIO)不起作用。
如果有人能指出正确的方向,那将非常有帮助。
我找到了一个解决方案,我只需要在字符串前添加 file://
。
所以最后 URI 是 file:///data/app/cache/image.jpg
并且文件插件能够读取它。