电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Boot 2.x 實現文件上傳功能

瀏覽:23日期:2023-07-27 08:08:10

文件上傳的功能實現是我們做Web應用時候最為常見的應用場景,比如:實現頭像的上傳,Excel文件數據的導入等功能,都需要我們先實現文件的上傳,然后再做圖片的裁剪,excel數據的解析入庫等后續操作。

今天通過這篇文章,我們就來一起學習一下如何在Spring Boot中實現文件的上傳。

動手試試

第一步:創建一個基礎的Spring Boot項目,如果還不會的話就先看看這篇《快速入門》。

第二步:在pom.xml中引入模版引擎依賴:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

你也可以選擇其他你熟悉的模版引擎,比如:Freemarker。

第三步:在resources目錄下,創建新目錄templates;在templates目錄下再創建一個文件上傳的頁面upload.html,內容如下:

<!DOCTYPE html><html><head lang='en'> <meta charset='UTF-8' /> <title>文件上傳頁面</title></head><body><h1>文件上傳頁面</h1><form method='post' action='/upload' enctype='multipart/form-data'> 選擇要上傳的文件:<input type='file' name='file'><br> <hr> <input type='submit' value='提交'></form></body></html>

第四步:創建文件上傳的處理控制器,命名為UploadController

@Controller@Slf4jpublic class UploadController { @Value('${file.upload.path}') private String path; @GetMapping('/') public String uploadPage() { return 'upload'; } @PostMapping('/upload') @ResponseBody public String create(@RequestPart MultipartFile file) throws IOException { String fileName = file.getOriginalFilename(); String filePath = path + fileName; File dest = new File(filePath); Files.copy(file.getInputStream(), dest.toPath()); return 'Upload file success : ' + dest.getAbsolutePath(); }}

其中包含這幾個重要元素:

成員變量path,通過@Value注入配置文件中的file.upload.path屬性。這個配置用來定義文件上傳后要保存的目錄位置。 GET請求,路徑/,用于顯示upload.html這個文件上傳頁面。 POST請求。路徑/upload,用于處理上傳的文件,即:保存到file.upload.path配置的路徑下面。

注意:這里主要演示文件上傳的主要流程,真實應用還有更多內容要考慮,比如:文件上傳后的文件名處理(防止重名)、分布式情況下文件上傳后如何共享訪問等。更高級的最后,我們后續文章繼續講。

第五步:編輯application.properties配置文件

spring.servlet.multipart.max-file-size=2MBspring.servlet.multipart.max-request-size=2MBfile.upload.path=/Users/didi/

前兩個參數用于限制了上傳請求和上傳文件的大小,而file.upload.path是上面我們自己定義的用來保存上傳文件的路徑。

測試驗證

第一步:啟動Spring Boot應用,訪問http://localhost:8080,可以看到如下的文件上傳頁面。

Spring Boot 2.x 實現文件上傳功能

第二步:選擇一個不大于2MB的文件,點擊“提交”按鈕,完成上傳。

如果上傳成功,將顯示類似下面的頁面:

Spring Boot 2.x 實現文件上傳功能

你可以根據打印的文件路徑去查看文件是否真的上傳了。

代碼示例

本文的相關例子可以查看下面倉庫中的chapter4-3目錄:

Github:https://github.com/dyc87112/SpringBoot-Learning/

Gitee:https://gitee.com/didispace/SpringBoot-Learning/

到此這篇關于Spring Boot 2.x 實現文件上傳功能的文章就介紹到這了,更多相關Spring Boot 2.x 實現文件上傳內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | 新疆十佳旅行社_新疆旅游报价_新疆自驾跟团游-新疆中西部国际旅行社 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 成都租车_成都租车公司_成都租车网_众行宝 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 土壤养分检测仪|土壤水分|土壤紧实度测定仪|土壤墒情监测系统-土壤仪器网 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 2025福建平潭岛旅游攻略|蓝眼泪,景点,住宿攻略-趣平潭网 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 沈阳缠绕包装机厂家直销-沈阳海鹞托盘缠绕包装机价格 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 广州云仓代发-昊哥云仓专业电商仓储托管外包代发货服务 | 自动配料系统_称重配料控制系统厂家 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 传动滚筒,改向滚筒-淄博建凯机械科技有限公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 |