jeecms框架中以有上传文件 但为了避免服务器端的压力有必要控制文件大小在2M以内才允许上传
Jeecms 框架由SpringMVC +Hibernate +freemarker组成 Spring提供org.springframework.web.multipart.commons.CommonsMultipartResolver组件针对文件上传操作
根据需求,注入其属性
<!--限制文件上传2M内 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="2097152"></property> </bean>
当然文件大小控制住在2M内 点击上传后CommonsMultipartResolver直接过滤掉,页面没有相应提示信息,后台出现的错误并没有处理
严重: Servlet.service() for servlet JeeCmsAdmin threw exception org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (2152078) exceeds the configured maximum (2097152) at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:914) at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331) at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:155) at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:138)
那么如何更友好 的返回错误信息
在后台找到上传的控制器在获取字节时候控制住大小
private WebErrors validate(String filename, MultipartFile file, HttpServletRequest request) { WebErrors errors = WebErrors.create(request); if (file == null) { errors.addErrorCode("imageupload.error.noFileToUpload"); return errors; } //限制上传文件2M内 if(file.getSize()>2097152) { errors.addError("imageupload.error.maxSize"); return errors; } if (StringUtils.isBlank(filename)) { filename = file.getOriginalFilename(); } String ext = FilenameUtils.getExtension(filename); if (!ImageUtils.isValidImageExt(ext)) { errors.addErrorCode("imageupload.error.notSupportExt", ext); return errors; } try { if (!ImageUtils.isImage(file.getInputStream())) { errors.addErrorCode("imageupload.error.notImage", ext); return errors; } } catch (IOException e) { log.error("image upload error", e); errors.addErrorCode("imageupload.error.ioError", ext); return errors; } return errors; }
addError方法去读配置文件信息
最后把spring 配置中 的限制注释掉
最终结果
这样通过读取配置文件的信息返回 既解决了后台抛异常问题前段又有返回信息。
相关推荐
Spring CommonsMultipartResolver 上传文件,源码中包括spring的注解和视图交互及数据应用,上传文件等
struts+spring文件上传大小限制 所以不设资源分,可以自由下载
Spring5 文件上传所需的jar包:如果需要使用Spring中CommonsMultipartResolver解析器,解析multipart文件上传,需要导入这两个依赖包
使用springcloud的负载均衡 以及网关 实现文件的上传处理参看链接 https://blog.csdn.net/zhaoyu_nb/article/details/80579918
主要介绍了Spring MVC文件上传大小和类型限制以及超大文件上传bug问题,非常具有实用价值,需要的朋友可以参考下
基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...
Spring Cloud 各组件Demo ,包含 Spring Cloud Eureka ,Spring Cloud Zuul , Spring Cloud Ribbon , Hystrix-Dashboard-Turbine 如有错误 ,请于本人联系 ,自会及时修改 , 防止误导他人
spring cloud各组件实例代码,可以直接运行,适合学习spring cloud
实际项目中经常会用到日志打印 为避免日志打印输出文件过大 消耗服务器内存 需要限制大小
它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 本项目集成Minio的java客户端...
SpringMVC +Spring4.3.12+jackson+文件上传 所有Jar包
spring mvc上传 下载ftp文件
java spring 文件上传实例,包含了完整的 spring 文件上传配置
利用spring 生成Excel和PDF文件(内含项目所需要的jar包)
springcloud与springcloud alibaba组件升级比较
spring mvc文件上传,通过监听器实现进度条
springcloud组件体系思维导图,用于学习者清晰得知道Springcloud系列包含的技术
利用Spring Context上下文创建自定义对象,学习Spring的IoC容器如何使用控制反转创建一个对象,了解Spring控制反转原理
spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件spring配置文件...
spring文件上传,文件上传 传统方式 借助第三方组件实现文件上传: UserController.java编写: