【问题标题】:Upload File to GraphQL from iOS client从 iOS 客户端上传文件到 GraphQL
【发布时间】:2021-03-19 23:48:24
【问题描述】:
我正在为 GraphQl 和 Apollo 客户端使用 Back4app 后端进行查询和突变。查询很好,但我无法使用执行突变将文件上传到后端。
它说要作为 FileInput 执行突变,但我不知道如何将 Uiimage 转换为 FileInput 以写入数据库。如果我只是将一个字符串传递给 FileInput,它就会到达数据库。但无法上传图片。
谁能给个建议
【问题讨论】:
标签:
ios
swift
graphql
apollo-client
back4app
【解决方案1】:
您可以使用 GraphQL 将文件上传到 Parse,方法是发送具有 FileType 类型的文件,该文件具有 upload 属性,符合 Upload scaclar 类型。
在 Parse 4.4 上运行的名为 Person 的类的突变,具有名称(字符串)、年龄(数字)和照片(文件),如下所示:
mutation createPerson{
createPerson(input:{
fields:{
name: "Alex"
age: 40
photo: {
upload: file
}
}
}){
person{
id
}
}
}
请注意,根据您使用的 Parse 版本,语法可能会略有不同。
还记得按照此处所述将file 作为上传文件传递:
https://www.apollographql.com/docs/ios/mutations/#uploading-files
【解决方案2】:
您发送的那个 Mutation 的问题是您尝试将图像属性设置为 $file,而您应该像这样设置上传:
mutation SingleFileUpload($file: Upload!,$filename: String!){
createImages(input:{
fields:{
imagename: $filename
image: {
upload: $file
}
}
}){
images{
imagename
image{
url
name
}
}
}
}
这应该可以解决问题