我正在尝试使用 GraphQL API 将 .png/jpeg/.jpg 文件类型的用户头像从 Angular 客户端上传到 .netCore 服务器应用程序。我设法multipart/form-data
从客户端以内容类型的请求发送要上传的图像。但是从 API 服务器收到 400 错误,说不支持内容类型。
错误信息如下:
消息:“无效的 'Content-Type' 标头:不支持的媒体类型。必须是 'application/json'、'application/graphql' 或 'application/x-www-form-urlencoded'。见:http:// graphql.org/learn/serving-over-http/。”
我正在尝试实现这样的突变。
FieldAsync<StringGraphType>(
"testImageUpload",
arguments: new QueryArguments(
new QueryArgument<StringGraphType> { Name = "testArg" },
new QueryArgument<UploadGraphType> { Name = "file" }
),
resolve: async context =>
{
var testArg = context.GetArgument<string>("testArg");
var file = context.GetArgument<IFormFile>("file");
try
{
return await uploaderService().UploadImage(file);
}
catch (Exception e)
{
context.Errors.Add(new ExecutionError("Something happened!"));
return context.Errors;
}
});
我正在使用 GraphQL.net和GraphQL.Upload.AspNetCore来支持多部分文件。
样本突变将是这样的:
mutation testImageUpload($testArg: String, $file: Upload) {
fileUpload{
testImageUpload(testArg: $testArg, file: $file)
}
}
任何人都可以向我建议如何使 .NetCore webAPI 应用程序接受multipart/form-data
。任何帮助将不胜感激。提前致谢。