需要哪些版本的graphql-js和graphql-relay-js来支持通过Relay Mutation getFiles函数上传文件?

时间:2017-01-31 22:32:39

标签: file-upload graphql relayjs relay graphql-js

我目前正在尝试通过Relay上传文件,但每当我尝试执行突变时,我都会收到来自GraphQL服务器实现的语法错误。我目前正在使用graphql-js-0.4.18和graphql-relay-js-0.3.6。我假设这些包版本中的一个(或两个)是罪魁祸首。有谁知道我需要哪些最低版本的软件包来正确支持文件上传?我被迫将这些软件包移植到另一种语言,这就是为什么我担心所需的最低版本。提前谢谢!

变异请求

------WebKitFormBoundaryKwC5gIWABIRSXoeW
Content-Disposition: form-data; name="query"

mutation UploadFileMutation($input_0:CTI_Mutation_UploadFileInput!) {
  uploadFile(input:$input_0) {
    clientMutationId,
    ...F0
  }
}
fragment F0 on CTI_Mutation_UploadFilePayload {
  success
}
------WebKitFormBoundaryKwC5gIWABIRSXoeW
Content-Disposition: form-data; name="variables"

{"input_0":{"fileName":"test_file_upload.txt","clientMutationId":"3"}}
------WebKitFormBoundaryKwC5gIWABIRSXoeW
Content-Disposition: form-data; name="file"; filename="test_file_upload.txt"
Content-Type: text/plain


------WebKitFormBoundaryKwC5gIWABIRSXoeW--

突变反应

{"errors":[{"message":"Syntax Error GraphQL request (1:2) Invalid number, expected digit but got: \"-\".\n\n1: ------WebKitFormBoundaryKwC5gIWABIRSXoeW\n    ^\n2: Content-Disposition: form-data; name=\"query\"\n","locations":[{"column":2,"line":1}]}]}

1 个答案:

答案 0 :(得分:1)

事实证明,这根本不是GraphQL / Relay问题。我只需要为我的WebServer添加对multipart / form =数据处理的支持,现在我就能成功上传文件了。