Solon极简文件上传 HttpException: Payload Too Large

Solon一行代码上传文件,大文件异常org.smartboot.http.common.exception.HttpException: Payload Too Large 解决办法

写在前面

文件上传作为 Web 项目的必备功能,属于是项目开发必知必会的点了。不同组件也是有不同的写法,下面我们来看一下 国产信创组件 Solon 是怎么传文件的。

DemoController

接上一篇文章 Solon 初体验Solon init

package com.example.demo;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import org.noear.solon.annotation.Controller;
import org.noear.solon.annotation.Mapping;
import org.noear.solon.annotation.Param;
import org.noear.solon.annotation.Post;
import org.noear.solon.core.handle.ModelAndView;
import org.noear.solon.core.handle.UploadedFile;

import java.io.File;
import java.io.IOException;

@Controller
public class DemoController {

    @Post
    @Mapping("/uploadFile")
    public String uploadFile(UploadedFile file, String para1) throws IOException {
        byte[] bytes = file.getContentAsBytes();
        String newFileName = System.currentTimeMillis() + ".zip";
        // 转为本地文件(注意用完删除临时文件)
        File tempFile = FileUtil.writeBytes(bytes, new File(newFileName));
        // FileUtil.del(tempFile);
        return StrUtil.format("原文件名:{},新文件名:{},接收参数:{}", file.getName(), newFileName, para1);
    }
}

简简单单,一个 Post 方法搞定,只需要一个 UploadedFile 对象即可,如果需要接收其他参数,直接加参数即可。

测试API

在这里插入图片描述
一个接口轻松搞定,测试注意 para1 参数和接口的接收参数一致,文件 file 的值要选择 File 类型。

愉快的提交测试,测试随手一个大文件,后台直接报错:
org.smartboot.http.common.exception.HttpException: Payload Too Large

在这里插入图片描述
Solon 上传文件请求默认最大限制2mb,超过限制就会报错,按照官方参数配置说明
配置说明

需要在配置文件中修改默认上传请求限制:

server.request.maxBodySize: 100mb

再次测试

在这里插入图片描述

上传大文件,一把通过。你也来试试吧!

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有什么问题吗:INFO 2023-07-22 23:43:48.754 [-main][*][o.noear.solon.Solon]: App: Plugin starting INFO 2023-07-22 23:43:48.937 [-main][*][o.noear.solon.Solon]: Session: Local session state plugin is loaded INFO 2023-07-22 23:43:49.256 [-main][*][o.noear.solon.Solon]: View: load: FreemarkerRender INFO 2023-07-22 23:43:49.258 [-main][*][o.noear.solon.Solon]: View: load: org.noear.solon.view.freemarker.FreemarkerRender INFO 2023-07-22 23:43:49.258 [-main][*][o.noear.solon.Solon]: View: mapping: .ftl=FreemarkerRender INFO 2023-07-22 23:43:49.292 [-main][*][o.noear.solon.Solon]: App: Bean scanning INFO 2023-07-22 23:43:50.099 [-main][*][o.noear.solon.Solon]: View: mapping: .html=FreemarkerRender INFO 2023-07-22 23:43:50.995 [-main][*][o.noear.solon.Solon]: Connector:main: undertow: Started ServerConnector@{HTTP/1.1,[http/1.1]}{http://localhost:8080} INFO 2023-07-22 23:43:50.995 [-main][*][o.noear.solon.Solon]: Server:main: undertow: Started (undertow 2.2.24/2.3.8) @893ms INFO 2023-07-22 23:43:50.997 [-main][*][o.noear.solon.Solon]: View: mapping: @json=StringSerializerRender#SnackSerializer INFO 2023-07-22 23:43:50.997 [-main][*][o.noear.solon.Solon]: View: mapping: @type_json=StringSerializerRender#SnackSerializer INFO 2023-07-22 23:43:56.851 [-main][*][c.c.c.InitConfig]: nginxIsRun:false INFO 2023-07-22 23:43:56.899 [-main][*][c.c.c.InitConfig]: runCmd:nginx -c /home/nginxWebUI/nginx.conf INFO 2023-07-22 23:43:57.055 [-main][*][c.c.c.InitConfig]: _ _ __ __ __ __ ____ ____ ____ _ (_)____ _ __| | / /___ / /_ / / / // _/ / __ \ / __ `// // __ \ | |/_/| | /| / // _ \ / __ \ / / / / / / / / / // /_/ // // / / /_> < | |/ |/ // __// /_/ // /_/ /_/ / /_/ /_/ \__, //_//_/ /_//_/|_| |__/|__/ \___//_.___/ \____//___/ /____/
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值