Solon Web 文件上传的最佳实践

文件上传是 Web 开发中最常见的一个应用场景。一般在处理数据时,会有两种常见的方案:直接把文件流放在内存里,或者把文件流先缓冲到磁盘。

1、如果是高频且文件极小

使用纯内存模式,默认即可。如果高频小文件,是不适合用"临时文件模式"的,磁盘可能容易刷坏。只能多配些内存!

2、如果是低频或者文件很大

建议使用"临时文件模式"。即上传的数据流,先缓存为临时文件(落盘),再以本地文件流形式提供使用。这个非常省内存。比如,上传 1GB 的文件,服务内存几乎不会上升。

  • 添加配置

使用临时文件需要通过配置开启

yaml 复制代码
server.request.useTempfile: true #默认 false
  • 用后主动删除(建议,不管有没有用"临时文件模式"都主动删除)

使用完后,注意要删掉

java 复制代码
@Controller
public class DemoController{
    @Post
    @Mapping("/upload")
    public void upload(UploadedFile file) { 
        try{
            file.transferTo(new File("/demo/user/logo.jpg")); 
        } finally {
            file.delete();
        }
    }
}   
相关推荐
亿.62 小时前
春秋云境 CVE 复现
web·cve·春秋云境
2401_882726485 小时前
web组态可视化编辑器
前端·物联网·前端框架·编辑器·web·iot
anyview9320 小时前
Http文件上传
java·文件上传
_Nickname1 天前
NSSCTF web刷题
前端·web·ctf
摘星怪sec1 天前
【漏洞复现】|百易云资产管理运营系统/mobilefront/c/2.php前台文件上传
网络安全·文件上传·漏洞复现
带刺的坐椅1 天前
Solon(Spring 的替代方案)最近半年下载量突破 1200万!
java·maven·solon
GIS好难学2 天前
《Vue零基础入门教程》第二课:搭建开发环境
前端·javascript·vue.js·ecmascript·gis·web
diandian~2 天前
CVE-2022-4230
web
diandian~2 天前
CVE-2022-26201
web
岁岁岁平安2 天前
Web基础(HTTP协议)
网络协议·http·web