HTTP错误413.1-请求实体太大引发错误,而不是增加大小



所以我得到了错误"HTTP错误413.1-请求实体太大";因为我正试图上传一个很大的文件。当我收到这个错误时,整个网站都会崩溃以显示错误页面。在每一篇关于这个问题的SO或在线帖子中,答案都是增加IIS配置中允许的文件的大小。

我想保持默认大小,而只是向用户抛出一个错误,让他们知道他们的文件太大,而不会破坏网站并显示HTTP错误413.1页面。这样做可能吗?我想在视图模型中进行错误检查,但没有成功。

public class uploadVM: IValidatableObject
{
public IFormFile upload { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var size = upload.Length;
if (size > 5242880)
{
yield return new ValidationResult("File upload too large");
}
}
}

我认为这是因为asp.net核心应用程序托管在IIS中,这将导致IIS首先验证上传的文件。如果它太大,IIS将直接报告错误。我想到的解决方案是,可以使用JS来判断上传文件的大小,如果文件太大,不要将其传递给IIS中的应用程序。

<script type="text/javascript">
var files = document.getElementById('fileId').files;  
var fileSize = 0;
if(files.length!=0){
fileSize = files[0].size;
}
if(fileSize >1048576){
alert("The uploaded file is too large!");
return false;
}
</script>

相关内容

最新更新