我正在尝试编写Controller(在asp.net核心中)代码来处理我的fineuploader请求但是它仍然无法看到请求数据,尽管[FromForm] / [FromBody] /“Content-Type”的任何组合:'application / json'我用。这是我在视图页面中的上传器配置:
var uploader = new qq.FineUploader({
element: document.getElementById("uploader"),
request: {
endpoint: '@Url.Action("AddAttachment", "Util")',
customHeaders: {
"RequestVerificationToken": '@GetAntiXsrfRequestToken()',
"Content-Type": 'application/json'
}
},
这是我的控制器代码 - 现在还不是很多,我只是想看到一些数据被发送。
public JsonResult AddAttachment([FromForm] Object o){
//var x = HttpContext.Request;
//return Json(x);
if(o == null){
return Json("no data");
}else{
return Json(o);
}
}
她就是我看到的fineuploader通过chrome devtools中的网络选项卡发送到服务器:
------WebKitFormBoundarySQwYoYovQOkoFU1f
Content-Disposition: form-data; name="test"
876
------WebKitFormBoundarySQwYoYovQOkoFU1f
Content-Disposition: form-data; name="qquuid"
9ba04b80-b3d8-4e2d-8068-792dd77253bd
------WebKitFormBoundarySQwYoYovQOkoFU1f
Content-Disposition: form-data; name="qqfilename"
dohPlayDat.PNG
------WebKitFormBoundarySQwYoYovQOkoFU1f
Content-Disposition: form-data; name="qqtotalfilesize"
3535659
------WebKitFormBoundarySQwYoYovQOkoFU1f
Content-Disposition: form-data; name="qqfile"; filename="dohPlayDat.PNG"
Content-Type: image/png
------WebKitFormBoundarySQwYoYovQOkoFU1f-
任何人都可以看到我犯的错误吗?
答案 0 :(得分:1)
如果所有内容都连线正确,您应该可以通过控制器中的DataGridViewCell
查看您的文件。
我试图通过动作参数将其作为字节数组,但没有运气。试试这个。
答案 1 :(得分:0)
以下代码段是如何绑定文件上载请求中的所有字段,然后使用文件流将文件写入临时文件的示例。
public async Task<IActionResult> Post(string qquuid, string qqfilename, int qqtotalfilesize, IFormFile qqfile)
{
// full path to file in temp location
var filePath = Path.GetTempFileName();
if (qqfile.Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
await qqfile.CopyToAsync(stream);
}
}
}
有关使用.NET Core上传文件的更多信息,请查看此处:https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1