gpt4 book ai didi

c# - HttpPost Ajax 调用 ASP.NET CORE 中的 404 错误

转载 作者:行者123 更新时间:2023-12-04 16:30:08 25 4
gpt4 key购买 nike

我正在尝试在 Ajax 请求中发布文件。它在 Localhost 中工作,但在服务器上发布后不工作,它总是返回 404。

不知道是不是路由问题

如果有人能给我一些想法,我将不胜感激。

我的代码在这里:

查看:

<form method="post" enctype="multipart/form-data">
<input type="file" id="files"
name="files" multiple />
<input type="button"
id="upload"
value="Upload Selected Files" />

Controller :

    [HttpPost]
public IActionResult UploadFilesAjax()
{
long size = 0;
var files = Request.Form.Files;
foreach (var file in files)
{
var filename = ContentDispositionHeaderValue
.Parse(file.ContentDisposition)
.FileName
.Trim('"');
filename = hostingEnv.WebRootPath + $@"\{filename}";
size += file.Length;
using (FileStream fs = System.IO.File.Create(filename))
{
file.CopyTo(fs);
fs.Flush();
}
}
string message = $"{files.Count} file(s) / {size} bytes uploaded successfully!";

return Json(message);

}

Javascript:

@section Scripts {
<script type="text/javascript">
j(document).ready(function () {
j("#upload").click(function (evt) {
var fileUpload = $("#files").get(0);
var files = fileUpload.files;
var data = new FormData();
for (var i = 0; i < files.length ; i++) {
data.append(files[i].name, files[i]);
}
$.ajax({
type: "POST",
url: "/Exemplos/UploadFilesAjax",
contentType: false,
processData: false,
data: data,
success: function (message) {
alert(message);
},
error: function (e) {

alert("There was error uploading files!");
}
});
});
});
</script>

最佳答案

正如我在您的 POST 方法中注意到的,没有打开到您定义的 URL 的路由。请将路由添加到 HttpPost 属性。如下所示,

[HttpPost("/Exemplos/UploadFilesAjax")]
public IActionResult UploadFilesAjax()
{
long size = 0;
var files = Request.Form.Files;
foreach (var file in files)
{
var filename = ContentDispositionHeaderValue
.Parse(file.ContentDisposition)
.FileName
.Trim('"');
filename = hostingEnv.WebRootPath + $@"\{filename}";
size += file.Length;
using (FileStream fs = System.IO.File.Create(filename))
{
file.CopyTo(fs);
fs.Flush();
}
}
string message = $"{files.Count} file(s) / {size} bytes uploaded successfully!";

return Json(message);

}

关于c# - HttpPost Ajax 调用 ASP.NET CORE 中的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com