struts判断文件大小

通过FormFile.getFileSize()方法来判断文件的大小是否超标,如果超标,就想用户返回错误信息。但是这种方法的最大问题就是用户的文件已经上传到服务器并且保存在内存中了,万一用户上传了一个1000M的文件怎么办,服务器还不直接挂了。

参照struts的文档,配置了文件的大小(),这样在上传的过程中,如果文件超过了配置的大小,就会终止文件的上传。相应的FormFile字段为null,我们无法简单的通过判断FormFile是否为空来用户的文件是否超过了配置的大小,不过struts为我们提供了一个途径,在文件超过配置大小时struts会在Servelet Request设置一个属性, MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED,它的值是一个Boolean类型的变量,所以我们可以在Action的execute方法中通过如下代码判断文件是否”超标“:

        Boolean maxLengthExceeded = (Boolean) request.getAttribute(
                              MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
       
        if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))

        {

                  Blar, Blar...

        }

你可能感兴趣的:(struts)