无法通过ionic 3的FileTransfer插件将图像上传到Cloudinary

时间:2019-02-27 09:32:10

标签: ionic-framework file-upload ionic3 file-transfer cloudinary

我正在尝试将图像从移动画廊上传到cloudinary。 我遵循了在this link中找到的将照片从角度上传到云端的文档中的逻辑。

然后我使用File Transfer插件将照片从ionic3应用程序上传到cloudinary。

这是upload()函数:

upload() {
    const fileTransfer: FileTransferObject = this.transfer.create();
    let options: FileUploadOptions = {
        fileKey: 'testName',
        fileName: 'test',
        mimeType : "text/plain",
        headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' },
        params:{upload_preset:'preset'}
    };
    let url = 'https://api.cloudinary.com/v1_1/<cloud_name>/image/upload';
    if (this.imageURI) {
        fileTransfer.upload(this.imageURI[0], encodeURI(url), options)
                .then((data) => {
                    console.log('uploaded heeere data', JSON.stringify(data))
                }, (err) => {
                    console.log('errorrrr', JSON.stringify(err))
                })
    }
}

this.imageUri[0]是一张以64为底的照片

,并且在app.module.ts中,我指定了cloudinary配置:

 import { CloudinaryConfiguration, CloudinaryModule } from "@cloudinary/angular-5.x";
 import { Cloudinary } from "cloudinary-core";


@NgModule({
declarations: [....],
imports: [
BrowserModule,
HttpClientModule,
CloudinaryModule.forRoot({Cloudinary}, {
      cloud_name: "<cloud_name>",
      upload_preset: 'preset',
      api_key:'<api_key>'
  } as CloudinaryConfiguration),
]
.......
})

但是我上传失败。 没有显示错误。.仅显示一条消息:File Name is too long

我不知道连接是否建立,cloudinary是谁拒绝长名称文件还是什么?

有人可以帮我调试一下问题所在吗?或者有人可以帮我解决这个问题?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您应该发送的图像名称不是base64编码,服务器将base64作为名称文件读取,因此您尝试在第一个参数中发送文件名称