我正在尝试将图像从移动画廊上传到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
是谁拒绝长名称文件还是什么?
有人可以帮我调试一下问题所在吗?或者有人可以帮我解决这个问题?
非常感谢。
答案 0 :(得分:0)
您应该发送的图像名称不是base64编码,服务器将base64作为名称文件读取,因此您尝试在第一个参数中发送文件名称