【发布时间】:2018-10-17 15:41:36
【问题描述】:
我在 Asp.net core 2.0 中创建一个允许上传文件的网站。我很快遇到了30MB 上传限制的问题,并收到了来自服务器的404 响应。低于此限制一切正常。
我在网上找到了很多这样的解决方案:
Increase upload file size in Asp.Net core。我的问题是我无法让这个解决方案发挥作用,并且在超过30MB 时我仍然收到404 响应。
我的调用是一个 ajax 调用,如下所示:
function uploadMedia(isPhoto, files) {
var type;
if (isPhoto) {
type = "i";
} else {
type = "v";
}
var data = new FormData();
if (files.length > 0) {
for (idx = 0; idx < files.length; idx++) {
if (files[idx].size < 1074790400) {
data.append("fileImage" + idx, files[idx]);
} else {
BootstrapDialog.show({
type: BootstrapDialog.TYPE_WARNING,
title: "Validation Error",
message: "The maximum file size for images is 1GB. Please resize your image and upload again.",
buttons: [
{
label: "OK",
action: function(dialogItself) {
dialogItself.close();
}
}
]
});
}
}
$.ajax({
url: "/api/article/uploadfile/" + type,
type: "POST",
processData: false,
contentType: false,
dataType: false,
data: data,
success: function(jsonData) {
refreshUploadedImages(jsonData, isPhoto);
}
});
}
}
function rotateImageAnticlockwise(element) {
var id = $(element).attr("data-id");
var mediaData = getMediaData(id, true);
$.ajax({
url: "/api/article/rotateMedia/a/p/" + mediaData.fileId + "/" + mediaData.rotation,
type: "POST",
processData: false,
contentType: false,
success: function(jsonData) {
refreshRotatedImage(jsonData);
}
});
}
然后我的服务器端方法有这样的属性:
[HttpPost]
[RequestSizeLimit(1074790400)]
[Route("api/article/uploadfile/{mediaType}")]
public async Task<IActionResult> UploadFile(string mediaType)
谁能看到我做错了什么?这快把我逼疯了!!!
【问题讨论】:
-
只是一个想法,作为故障排除步骤,您是否尝试过 1) 注释掉您的 JS
if (files[idx].size < 1074790400)块(只是周围的块,以便执行data.append和 2)在操作方法(而不是设置显式限制)? -
@egnomerator - 我都试过了,但不幸的是仍然遇到同样的错误。
-
只是为了确保我没有做出错误的假设,您的应用程序由 IIS 托管而不是自托管?抱歉,如果这是在某处指定的,我错过了。
-
我正在从 Visual Studio 将网站作为标准 .net core 2.0 asp.net 应用程序运行。
标签: javascript c# asp.net-core