Fineuploader dotnet 核心
Fineuploader dotnet core
我正在尝试编写控制器(在 asp.net 核心中)代码来处理我的 fineuploader 请求,但是尽管 [FromForm] / [FromBody] / [ 的任何组合,它仍然无法看到请求数据=21=]: '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);
}
}
我看到她是通过 chrome devtools 中的网络选项卡发送到服务器的 fineuploader:
------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-
谁能看出我犯的错误?
如果一切连接正确,您应该能够通过控制器中的 Request.Form.Files
查看您的文件。
我试图通过操作的参数将其作为字节数组获取,但没有成功。试试这个。
以下代码段示例说明了如何绑定文件上传请求中的所有字段,然后使用文件流将文件写入临时文件。
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
我正在尝试编写控制器(在 asp.net 核心中)代码来处理我的 fineuploader 请求,但是尽管 [FromForm] / [FromBody] / [ 的任何组合,它仍然无法看到请求数据=21=]: '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);
}
}
我看到她是通过 chrome devtools 中的网络选项卡发送到服务器的 fineuploader:
------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-
谁能看出我犯的错误?
如果一切连接正确,您应该能够通过控制器中的 Request.Form.Files
查看您的文件。
我试图通过操作的参数将其作为字节数组获取,但没有成功。试试这个。
以下代码段示例说明了如何绑定文件上传请求中的所有字段,然后使用文件流将文件写入临时文件。
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