如何解决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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。