Sunday, May 19, 2024
Homepage · c#
 Popular · Latest · Hot · Upcoming
120
rated 0 times [  122] [ 2]  / answers: 1 / hits: 20809  / 6 Years ago, mon, may 7, 2018, 12:00:00

I'm creating a website in Asp.net core 2.0 which allows files to be uploaded. I quickly came across the problem of the 30MB upload limit and receive a 404 response from the server. Below this limit everything works fine.



I found a number of solutions on the web like this one:
Increase upload file size in Asp.Net core. My problem is that I cannot get this solution to work and I'm still getting the 404 response when over 30MB.



My call is an ajax one and goes like this:



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);
}
});
}


Then my server-side method has attributes like this:



[HttpPost]
[RequestSizeLimit(1074790400)]
[Route(api/article/uploadfile/{mediaType})]
public async Task<IActionResult> UploadFile(string mediaType)


Can anyone see what I'm doing wrong? This is driving me mad!!!


More From » c#

 Answers
11

For anyone else with the same problem, this is the answer.



Mark LaFleur's answer was the right direction but the web.config was missing a crucial section.



I was helped but this webpage that explains more about the web.config file in Asp.net Core:
ASP.NET Core Module configuration reference



To stop this error you need to create a web.config file with the following content:



<?xml version=1.0 encoding=utf-8?>
<configuration>
<system.webServer>
<handlers>
<add name=aspNetCore path=* verb=* modules=AspNetCoreModule resourceType=Unspecified />
</handlers>
<security>
<requestFiltering>
<!-- This will handle requests up to 50MB -->
<requestLimits maxAllowedContentLength=52428800 />
</requestFiltering>
</security>
</system.webServer>
</configuration>

[#54489] Thursday, May 3, 2018, 6 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
josefinap

Total Points: 548
Total Questions: 125
Total Answers: 106

Location: Angola
Member since Tue, May 5, 2020
4 Years ago
;