[英]Multipart/form-data request — Uploading pdf is resulting in a blank file
[英]Sending multipart/form-data using GraphQL API in .NetCore
我正在嘗試使用 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
。 任何幫助將不勝感激。 提前致謝。
我也遇到了這個問題。答案就在您的Startup.cs<\/code>文件中。
首先,即使在使用 GraphQL.Upload 時也會出現“Invalid 'Content-Type' header”的原因是(在本回答時)GraphQL.net 中間件只檢查三個不同的 Content-Type 標頭和錯誤如果這些都不匹配,則退出。 見 GitHub<\/a>
至於解決方案,您尚未共享任何
Startup.cs<\/code>文件,因此我不確定您的文件是什么樣的。我將分享我的相關部分。
services.AddGraphQLUpload()
.AddGraphQL((options, provider) =>
{
...
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.