从 iOS 客户端上传文件到 GraphQL
Posted
技术标签:
【中文标题】从 iOS 客户端上传文件到 GraphQL【英文标题】:Upload File to GraphQL from iOS client 【发布时间】:2021-03-19 23:48:24 【问题描述】:我正在为 GraphQl 和 Apollo 客户端使用 Back4app 后端进行查询和突变。查询很好,但我无法使用执行突变将文件上传到后端。
它说要作为 FileInput 执行突变,但我不知道如何将 Uiimage 转换为 FileInput 以写入数据库。如果我只是将一个字符串传递给 FileInput,它就会到达数据库。但无法上传图片。
谁能给个建议
【问题讨论】:
【参考方案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
这应该可以解决问题
【讨论】:
更新以前的答案,不要再发一个以上是关于从 iOS 客户端上传文件到 GraphQL的主要内容,如果未能解决你的问题,请参考以下文章