1

我正在阅读有关文件上传的本教程:https ://guides.grails.org/grails-upload-file/guide/index.html

但是即使文件大小限制设置为 25MB,也没有描述当上传的文件超过这个值时如何处理 FileUploadBase$SizeLimitExceededException 异常。如果有限制,即使它太大,有人会碰到它并想向用户显示一个很好的错误,但异常似乎发生在执行我的控制器代码之前。

问题是:如何在 Grails 3.3.x 应用程序上处理这种异常?

4

1 回答 1

0

我认为在 2MB 文件大小之后,James Kleeh 解决方案存在 Tomcat max-swallow-size 问题,导致多个异常。

https://github.com/grails/grails-core/issues/9378

我继续使用 Javascript 并至少进行了客户端验证。见下文:

function validateSize() {
    var fileSize = document.getElementById("uploadFile").files[0];
    var sizeInMb = (fileSize.size / 1024) / 1024;
    var sizeLimit = 10;
    if (sizeInMb > sizeLimit) {
        alert('File size must be less than 10 MB');
        return false;
    }
    showSpinner();
    return true;
}

<input type="submit" value="I Accept" class="btn btn-success" onclick="return validateSize()"/>
于 2021-09-16T18:46:49.193 回答