【发布时间】:2020-03-18 15:05:09
【问题描述】:
我目前正在尝试将图像文件与带有 ajax 的字符串一起上传到 Asp.Net Core Api,但没有成功。
我看了:https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects 并认为在 FormData 对象中同时发送图像文件和字符串很容易,但只接收到图像。
在 javascript 中,我正在附加数据并使用 ajax 帖子发送:
let formData = new FormData();
formData.append("code", "123");
formData.append("userFile", document.querySelector("#imgInput").files[0]);
$.ajax({
async: true,
type: "post",
data: formData,
processData: false,
contentType: false,
url: "https://localhost:22333/api/postmethod",
success: function (data, response, jqXHR) {
console.log(response);
},
error: function (jqXHR, response, errorThrown) {
}
});
而在 Asp.Net Core 中的方法是:
[HttpPost]
[Route("postmethod")]
public async Task PostMethod(IFormFile code, IFormFile userFile)
我尝试将code 参数设置为IFormFile 和字符串,但没有任何反应。 userFile 参数始终正确设置为 Image 文件,这让我想知道我在上传 code 字符串时做错了什么。
TLDR: 无法通过 ajax 调用将图像文件和字符串同时上传到 Asp.Net Core 3.1 Api。
有没有更好的上传文件和参数的方法?
【问题讨论】:
-
看看能不能解决问题! :)
-
对我最初的评论造成的混乱表示歉意。我忘了你必须使用一个复杂的对象(多个值,但一个单一的参数)。希望答案有所帮助。
标签: jquery ajax api asp.net-core