Python Graphql将文件与其他字段一起上载

Python Graphql将文件与其他字段一起上载,python,graphql,ariadne-graphql,Python,Graphql,Ariadne Graphql,我正在使用Ariadne创建一个python GraphQL服务器和一个我有以下变种的服务器来上传一个文件: type Mutation { uploadUserAvatar(file: Upload!): Boolean! } 使用以下curl命令上载图像: curl http://localhost:8080/ \ -F operations='{ "query":"mutation ($file: Upload!) { uploadUserAva

我正在使用Ariadne创建一个python GraphQL服务器和一个我有以下变种的服务器来上传一个文件:

type Mutation {
    uploadUserAvatar(file: Upload!): Boolean!
}
使用以下curl命令上载图像:

curl http://localhost:8080/ \
  -F operations='{ "query":"mutation ($file: Upload!) { uploadUserAvatar(file: $file) }","variables": { "file": null} }' \
  -F map='{ "0": ["variables.file"] }' \
  -F 0=@image.jpeg
上面的命令可以完美地将图像上传到端点

但是,我需要将用户id与图像一起传递,这种变异如下:

type Mutation {
    uploadUserAvatar(userid: String!, file: Upload!): Boolean!
}
我正在努力获得正确的curl命令,以便使用
用户ID上传图像

我试过下面的命令

curl http://localhost:8080/ \
  -F operations='{ "query":"mutation ($userid: String!, $file: Upload!) { uploadUserAvatar(userid: $userid, file: $file) }","variables": { "file": null, "userid": null } }' \
  -F map='{ "0": ["variables.file"], "1": ["variables.userid"] }' \
  -F 0=@etiqueta_LG.jpeg \
  -F 1='abc1234'
但我得到的响应是输入键“1”缺少文件数据(https://github.com/jaydenseric/graphql-multipart-request-spec).


我如何通过传递
用户ID
图像
来调用GraphQL端点进行上传?

不要像对待用户ID那样包装表单数据的
内容
部分。试试这个:

curl http://localhost:8080/ \
  -F operations='{ "query":"mutation ($userid: String!, $file: Upload!) { uploadUserAvatar(userid: $userid, file: $file) }","variables": { "file": null, "userid": null } }' \
  -F map='{ "0": ["variables.file"], "1": ["variables.userid"] }' \
  -F 0=@etiqueta_LG.jpeg \
  -F 1=abc1234

我没有尝试过这一点,但我阅读了curl文档(
mancurl
)并阅读了表单数据部分
-F
不要像对待userid那样包装表单数据的
内容部分。试试这个:

curl http://localhost:8080/ \
  -F operations='{ "query":"mutation ($userid: String!, $file: Upload!) { uploadUserAvatar(userid: $userid, file: $file) }","variables": { "file": null, "userid": null } }' \
  -F map='{ "0": ["variables.file"], "1": ["variables.userid"] }' \
  -F 0=@etiqueta_LG.jpeg \
  -F 1=abc1234

我没有尝试过,但我阅读了curl文档(
mancurl
)并阅读了表单数据部分
-F
只有文件需要“特殊处理”,其他数据通过
变量以经典方式传递


只有文件需要“特殊处理”,其他数据通过
“变量”
以经典方式传递


您是否尝试过在
abc1234
中不使用单引号?所以最后一位应该是
-f1=abc1234
您是否尝试过在
abc1234
周围没有单引号?因此,最后一位将是
-f1=abc1234
不起作用,为输入键“1”获取此
文件数据丢失(https://github.com/jaydenseric/graphql-multipart-request-spec)
好的,我没有其他想法。祝你好运。不起作用,输入键“1”缺少获取此
文件数据(https://github.com/jaydenseric/graphql-multipart-request-spec)
好的,我没有其他想法。祝你好运