尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SpringBoot 文件上传与下载——单文件、多文件、大文件分片
文件上传下载是 Web 项目中的高频需求——用户头像、合同附件、产品图片。这篇讲 SpringBoot 中文件上传下载的完整实现包含单文件、多文件、大文件分片上传等场景。一、配置1. 文件上传配置spring:servlet:multipart:enabled:truemax-file-size:10MB# 单个文件最大max-request-size:50MB# 总请求最大file-size-threshold:2KB# 文件大小阈值location:/tmp2. 文件存储配置ConfigurationConfigurationProperties(prefixfile)DatapublicclassFileStorageConfig{privateStringuploadDir/data/uploads;privateStringdownloadUrl/files;}二、单文件上传RestControllerRequestMapping(/file)publicclassFileController{AutowiredprivateFileStorageConfigconfig;PostMapping(/upload)publicResultVOStringupload(RequestParam(file)MultipartFilefile){if(file.isEmpty()){returnResultVO.error(400,请选择文件);}try{// 1. 生成存储文件名StringoriginalNamefile.getOriginalFilename();StringextoriginalName.substring(originalName.lastIndexOf(.));StringsaveNameIdUtil.simpleUUID()ext;// 2. 按日期分目录StringdatePathDateUtil.today();FiledirnewFile(config.getUploadDir(),datePath);if(!dir.exists())dir.mkdirs();// 3. 保存文件FiledestnewFile(dir,saveName);file.transferTo(dest);// 4. 返回可访问路径Stringurlconfig.getDownloadUrl()/datePath/saveName;returnResultVO.success(url);}catch(IOExceptione){returnResultVO.error(500,上传失败);}}}三、多文件上传PostMapping(/uploads)publicResultVOListStringuploadMultiple(RequestParam(files)MultipartFile[]files){ListStringurlsnewArrayList();for(MultipartFilefile:files){// 逐个上传urls.add(upload(file));}returnResultVO.success(urls);}四、文件下载GetMapping(/download/{datePath}/{fileName})publicvoiddownload(PathVariableStringdatePath,PathVariableStringfileName,HttpServletResponseresponse){FilefilenewFile(config.getUploadDir(),datePath/fileName);if(!file.exists()){response.setStatus(404);return;}response.setContentType(application/octet-stream);response.setHeader(Content-Disposition,attachment;filenameURLEncoder.encode(fileName,UTF-8));Files.copy(file.toPath(),response.getOutputStream());} 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/爬虫 实战干货不让你白来。
RELATED

相关推荐

Tesseract 5.5.2 与 OpenCV 4.9 图像预处理实战:验证码识别率从 30% 提升至 85%

Tesseract 5.5.2 与 OpenCV 4.9 图像预处理实战:验证码识别率从 30% 提升至 85%

Tesseract 5.5.2 与 OpenCV 4.9 图像预处理实战:验证码识别率从 30% 提升至 85% 1. 验证码识别的核心挑战 验证码识别一直是OCR领域的难点问题。传统Tesseract直接处理验证码时,识别率往往不足30%,主要面临以下挑战: 噪声干扰 …

📅 2026/11/9 1:50:24
抖店订单备注太多怎么管理一件代发特殊要求如何避免漏处理

抖店订单备注太多怎么管理一件代发特殊要求如何避免漏处理

抖店订单备注太多怎么管理?一件代发特殊要求如何避免漏处理 一件代发订单里,经常会出现各种备注:指定快递、不要放小票、改地址、延迟发货、颜色备注、补发说明。如果订单少,人工记一下还能处理;订单多了,很…

📅 2026/9/11 15:43:22
2026在线PDF转Excel,实操指南:无水印免费、无需注册的安全转换方案

2026在线PDF转Excel,实操指南:无水印免费、无需注册的安全转换方案

2026 年日常办公、财务统计、数据整理场景中,经常需要把报表、单据类 PDF 文件转为可编辑 Excel 表格,在线网页工具、微信小程序、电脑本地内置功能是三类主流处理路径。本篇整合多款实测可用工具,覆盖在线 PDF 转 Excel 无水印网站、免费转换…

📅 2026/10/17 1:49:21
MORE NEWS

更多资讯

📰

安监局对电工证要求你必须知道 上岗必备这些细节

安监局对电工证要求你必须知道 上岗必备这些细节 怕考不过白交培训费?很多电工朋友在报考前最担心的就是培训费打水漂,证书拿不到,或者拿到的证书不符合岗位要求,耽误工作机会。其实只要你提前了解 安监局对电工证要求…

📰

低压电工证哪个专业证怎么转异地?网上查询让你少走弯路

低压电工证哪个专业证怎么转异地?网上查询让你少走弯路 你是不是正在找工作,却被一句“必须持有低压电工证才能上岗”拦住了去路?别急,今天就来给你讲清楚低压电工证哪个专业、怎么报名、怎么办理,还有怎么在网上查询你的证书状态,解决你眼下最急迫的问…

📰

资阳低压电工证多少钱?工地太忙根本没时间复习考试?内部消息全在这了

资阳低压电工证多少钱?工地太忙根本没时间复习考试?内部消息全在这了 工地太忙根本没时间复习考试,资阳低压电工证多少钱?你是不是也在为这个事头疼?最近收到很多来自周口水利工程一线的电工师傅咨询,说自己在工地上忙得连饭都顾不上吃,更别提抽时间复…

📰

考电工证的考试内容千万别踩坑 证书过期了不知道怎么复审延期

考电工证的考试内容千万别踩坑 证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?你不是一个人,这可能是很多持证人的共同困扰。特别是在河南,不少电工证持有人因为不了解复审流程,导致证书失效,耽误了工作机会。考电工证的考试内容看似简单…

📰

工地太忙根本没时间复习考试?泗县高压电工证培训官方回应来了

工地太忙根本没时间复习考试?泗县高压电工证培训官方回应来了 工地太忙根本没时间复习考试,这几乎是每个特种作业人员的真实写照。尤其是泗县的高压电工证培训,很多人一边忙着施工,一边还要抽空备考,压力山大。不过 官方回应…

📰

坪山办理电工证咨询通过率揭秘:证书过期了不知道怎么复审延期怎么办

坪山办理电工证咨询通过率揭秘:证书过期了不知道怎么复审延期怎么办 证书过期了不知道怎么复审延期,这是很多从事电工行业的朋友都遇到过的问题。尤其是在坪山地区,电工证作为从事电气作业的法定凭证,一旦过期,不仅影响工作,还可能面临法律风险。而很多…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬