我在ASP.NET Core2.0的剃刀页面上使用了DropZone和其他类似的表单输入-
DzDemo.cshtml页面-
<form method="post" enctype="multipart/form-data">
<input type="text" id="Username" name="Username" />
<div class="dropzone" id="my-dropzone" name="mainFileUploader">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
</form>
<div>
<button type="submit" id="submit-all"> upload </button>
</div>
JS:-
Dropzone.options.myDropzone = {
url: "/DzDemo?handler=Upload",
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 100,
maxFiles: 100,
acceptedFiles: "image/*",
// paramName: myParamName,
init: function () {
var submitButton = document.querySelector("#submit-all");
var wrapperThis = this;
submitButton.addEventListener("click", function () {
wrapperThis.processQueue();
});
this.on('sendingmultiple', function (data, xhr, formData) {
formData.append("UserName", $("#Username").val());
});
this.on('error',
function (file, response) {
console.log(response);
alert(response);
});
}
};
DzDemo.cshtml.cs页面:-
[HttpPost]
public IActionResult OnPostUpload()
{
var data = Request.Form; //This is
return Page();
}
但我从服务器得到400响应,我不能处理上传的文件服务器端,它也不会热的Upload
方法在服务器端。请帮帮忙
发布于 2020-10-25 14:21:55
我通过设置headers
选项使其正常工作
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() }
当然,您需要使用<form />
元素或显式地在页面中添加@Html.AntiForgeryToken()
发布于 2018-12-17 01:35:20
如果表单中缺少AntiforgeryToken,这将导致400将dropzone.js与Razor Pages一起使用。
这通常是自动注入的,但删除_viewimports或它的标记助手将阻止这一点。
要进行验证,只需将此行添加到<form/>
元素中,或者查看调试控制台中的错误消息。
@Html.AntiForgeryToken()
发布于 2019-04-16 00:14:46
在sendingmultiple中添加这一行,它将解析您的pb:
this.on('sendingmultiple', function (data, xhr, formData) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
});
https://stackoverflow.com/questions/50122555
复制相似问题