Cordova文件插件仅在iOS上返回代码为12的错误:PATH_EXISTS_ERR

时间:2018-12-09 11:03:01

标签: ios angular typescript cordova ionic-framework

我在Ionic 3中编写了一个简单的应用程序,用于提交带有很少附件(来自相机的图片,来自画廊的图片和一部20年代的电影)的表格。表单提交到服务器后,表单正在处理和接收状态。状态通过应用程序获取以通知用户。提交的整个表单都保存到SQLite中,以允许用户访问其所有表单和附件(图片和电影)。为此,我将图片和电影复制到Cordova文件插件中:

let imageData = await this.camera.getPicture(options);
let dir = imageData.split('/');
let fileName = dir[dir.length - 1];
dir.pop();
let fromDirectory = dir.join('/');
let toDirectory: string = this.file.syncedDataDirectory;
await this.file.copyFile(fromDirectory, fileName, toDirectory, fileName);

我的相机选项:

const options: CameraOptions = {
      quality: 50,
      destinationType: this.camera.DestinationType.FILE_URI,
      sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
      mediaType: this.camera.MediaType.PICTURE,
      encodingType: this.camera.EncodingType.JPEG
    }

一切都在Android上运行,但在iOS上我收到错误代码12:PATH_EXISTS_ERR。仅图片出现错误。我正在以与图片相同的方式复制电影:

await this.file.copyFile(fromDirectory, movieName, toDirectory, movieName)

在第一部分中,我将添加来自相机的一张照片和来自图库(相机胶卷)的一张照片,并且一切正常。当我尝试添加其他图片时,该问题在新的会话中发生。如果在上一个会话中添加了两张图片,则在第二个会话中,我会收到两次错误消息:PATH_EXISTS_ERR,第三种添加图片的方法是成功的。看起来在一个会话文件插件中正在编写索引为001、002等的图片...但是在新会话文件中插件正在尝试再次使用索引为001写新图片,但是此路径已经存在。 我找不到此错误的任何复制,可能是我使用了错误的方式使用文件插件,但是在Android上,一切工作都与将文件复制到文件插件中的方式完全一样(除了我将文件复制到this.file.dataDirectory)。如果找不到解决方案,可能会将图片转换为base64,并将其存储为字符串。 我将非常感谢您提供任何建议!

0 个答案:

没有答案