【问题标题】: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
            }
          }
        }
      }
      

      这应该可以解决问题

      【讨论】:

      • 更新以前的答案,不要再发一个
      猜你喜欢
      • 2020-12-04
      • 2017-08-21
      • 2021-06-30
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 2017-09-26
      • 1970-01-01
      相关资源
      最近更新 更多