文件这样上传,配置更灵活

java毕业设计 基于Springboot的电子发票管理系统源码+使用文档+全部资料(优秀项目).zip 【资源说明】 java毕业设计 基于Springboot的电子发票管理系统源码+使用文档+全部资料(优秀项目).zipjava毕业设计 基于Springboot的电子发票管理系统源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步! 立即下载

文件上传

新建一个项目,添加UploadController

@RestController

public class UploadController {

    @PostMapping("upload")
    public String post(@RequestParam("file") MultipartFile file){
        if (file.isEmpty()) {
            return "上传失败,请选择文件";
        }

        String fileName = file.getOriginalFilename();
        String filePath = "d:\\files\\";
        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
            return "上传成功";
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "上传失败!";
    }
}

然后在postman上模拟发送请求,如下图:

点击上传。失败!怎么回事,我们看下后台的报错信息

Caused by: java.io.FileNotFoundException: d:\files\电子发票.pdf (系统找不到指定的路径。)

原来是找不到文件,我们D盘下没有files文件夹,系统也没有自动创建,报错了。好吧,程序判断下,如果没有指定的文件夹,我们就自动创建,如下图:

再次执行postman,返回成功了,D盘下已经自动创建了files文件夹,选择上传的文件已经在指定的目录了

好了,上传一个文件是ok了,那业务经常有一次上传多个需求的,怎么办,点多次???NO!!!接着往下看。

@PostMapping("uploads")

public String posts(@RequestParam("file") List<MultipartFile> files){//参数file以list数组接收
    if (files.isEmpty()) {
        return "上传失败,请选择文件";
    }

    //如果目录不存在,则自动创建
    String filePath = "d:\\files\\";
    if (!new File(filePath).exists()) {
        new File(filePath).mkdirs();
    }

    //遍历文件,一个个保存到服务器
    for (MultipartFile file : files) {
        String fileName = file.getOriginalFilename();
        File dest = new File(filePath + fileName);
        try {
            file.transferTo(dest);
        } catch (IOException e) {
            e.printStackTrace();
            return "上传失败!";
        }
    }
    return "上传成功";
}

选择多个文件上传,点击postman的【send】按钮发送请求。

为了更利于维护,我们还可以将文件的上传目录添加到yaml配置文件中。

将application.properties文件改写为application.yaml(笔者喜欢yaml格式,各位客官随意)。然后在文件中添加以下内容

fileRoot: d:\\abc\\

注意:冒号后面有个空格

再postman请求一次,在D盘下自动建立一个abc的文件夹,文件已经存放到新的文件夹里面去了

我们还可以在yaml文件中添加如下配置:

spring:
  servlet:
    multipart:
      max-request-size: 10MB #限制多个文件总大小
      max-file-size: 1MB #限制单个文件最大值

postman上传一个超过1mb的文件,返回错误:

{
    "timestamp": "2021-01-16T02:32:01.774+00:00",
    "status": 500,
    "error": "Internal Server Error",
    "message": "",
    "path": "/upload"
}

更多java原创阅读:https://javawu.com

从零到一:手把手教你用SAM-BA工具完成嵌入式系统烧录 本文详细介绍了如何使用SAM-BA工具完成嵌入式系统烧录的全过程,包括环境搭建、硬件连接、Bootloader烧录以及完整系统镜像的烧录步骤。针对常见问题提供了实用的排查指南,并分享了批量烧录和自定义脚本的高级技巧,帮助开发者高效完成嵌入式系统开发。 阅读详情

相关推荐

第17篇:深入解析OpenEuler 24.03系统中的逻辑卷管理(LVM)

OpenEuler 24.03系统中的逻辑卷管理(LVM)提供了灵活的存储管理方案,通过在物理存储与文件系统间构建抽象层实现动态资源分配。

专注于系统运维、数据库、DevOps、虚拟化技术、docker、kubernetes、等云原生技术。 1689

.yaml参数文件的编写和使用

.yaml参数文件的编写和使用 一、在ROS底下使用.yaml文件配置参数 在ROS底下用起来还是非常方便的,首先,写一个读参数的函数getParam(),由于参数类型不止一种,所以要使用模板。 具体语句如下: template<typename T> T getParam(const string& name,...

weixin_30770783的博客 3633

电流采样电路设计:差分放大与ADC采集详解

在电机控制、电源管理、电池监测等应用中,电流采样是一个关键环节。通常,我们使用小阻值的采样电阻将电流信号转换为电压信号,再通过运放放大后送入ADC进行采集。本文将详细分析一种基于差分放大器的电流采样电路,包括信号放大、参考电压偏置、滤波保护以及ADC转换计算等内容。

W0s477的博客 2万+

spring boot集成文件上传插件(x-file-storage),同时支持本地、FTP、SFTP、阿里云 OSS、腾讯云 COS、MinIO、 Amazon S3等各种文件存储方式解决方案

在开发管理系统 ,因为系统要求 要同时支持 本地、FTP、SFTP、阿里云 OSS、腾讯云 COS、MinIO、 Amazon S3 这几种文件存储的上传方式 ,如果一一开发 肯定开发到花都谢了。 经过搜索 发现了一个好用的插件 x-file-storage 官方地址:https://x-file-storage.xuyanwu.cn/#/废话不多说 还是直接看代码 spring 版本 啥的 就不说了因为我们的文件上传的 基础参数配置是在 nacos 和数据库里 所以 采用的是动态 切换 存储方式 没有把

Json的知识梦工厂 6558

TESSY创建单元测试或集成测试工程

我们以tessy5.1为例,给大家展示单元测试和集成测试工程的创建过程。

空气中的告白专栏 1686

华为OD机试真题 新系统2026-04-08 C++ 实现【直捣黄龙】

小王在玩一款叫做直捣黄龙的小游戏,在该游戏中他需要从入口位置进入敌营,绕过哨兵的层层封锁,达到敌军司令部实施斩首行动。 敌军阵营是一个n*n的矩阵,入口在坐标(0,n/2),敌军司令部在坐标(n-1,n/2),每个 哨兵警戒以自己为中心的9宫格,一旦被哨兵发现则行动失败。

MISAYAONE的博客 262

springboot 文件上传未找到路径解决 (问题根源:File.transferTo(dest))

2134124 ```java /** * @Description * @Author sgl * @Date 2018-05-15 14:04 */ @Controller public class ttryController { private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class); @GetMapping("/tryupload") publ..

qq_44343988的博客 4190

游戏大厂射击游戏无缝大世界游戏DS服务器架构设计方案详解

摘要: 本文深入解析游戏大厂无缝大世界射击游戏的分布式服务器(DS)架构设计方案。以《和平精英》《量子特攻》为例,阐述如何通过动态分区、兴趣管理、弹性扩缩等核心技术应对高并发、低延迟、无缝切换等挑战。架构分为世界协调层、分区计算层、物理判定层等模块,结合微服务化、快照同步和Kubernetes调度,实现玩家跨区无感知迁移与一致判定。重点优化动态负载均衡、状态同步算法及容灾备份,依托分布式数据库与多云部署保障高可用性,为同类游戏提供可扩展的技术范本。(149字) 关键词: 无缝大世界、分布式服务器、动态分区、

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 563

文件上传的方式以及对应的配置

1:文件上传需要依赖commons-io-2.2.jar和commons-fileupload-1.3.1.jar包2:配置springmvc-context.xml文件<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="htt

liufunan的专栏 1144

SO_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、保活包

是一个套接字选项,用于设置是否启用 keepalive 机制。在这段代码中没有涉及到选项的设置。当被设置为非零值时,表示启用 keepalive 机制。keepalive 是一种用于检测连接是否仍然有效的机制。通过定期发送一些特定的探测数据,可以检测到网络连接的异常中断或对端应用程序的崩溃退出。为了避免以上情况,可以启用 keepalive 机制,即使在无数据传输的情况下也定期发送探测数据。如果在一定时间内没有收到对端的响应,就认为连接已经失效,并进行相应的处理。要启用选项,需要使用函数。其中,fd。

m0_46376834的博客 4817

VMware Horizon 8 2111 部署系列(九)创建即时克隆桌面池

即时克隆桌面池是在 vCenter Server 中使用 vmFork 技术(称为即时克隆 API)从最佳配置映像创建的自动桌面池。即时克隆共享同一个基础映像虚拟机,使用基础映像虚拟机的快照创建的,它使用的存储空间也少于完整虚拟机。 即时克隆始终保持开机状态,并在注销后从当前发布的映像重新创建。...

白昼的技术专栏 4045

【实战教程】SpringBoot全面指南:快速上手到项目实战(SpringBoot)

本文将从SpringBoot的基础介绍开始,逐步深入到具体应用场景,包括快速入门、Web开发、数据库访问、事务管理等方面。通过详细的步骤指导,帮助读者掌握SpringBoot与SpringMVC、SpringCloud的区别,学习静态资源处理、模板引擎集成、数据库操作、事务控制等内容。此外,还将介绍日志管理、定时任务、异步调用等高级特性,最终达到能够独立完成项目部署的能力。无论是初学者还是有一定基础的开发者,都能从中获得实用的知识点。

欢迎来到我的技术空间!我是一名经验丰富的Java开发工程师,热衷于分享我在软件开发领域的知识和心得。在这个博客里,您会发现一系列关于Java编程的文章,包括最佳实践、技术趋势、代码优化技巧以及一些有趣的项目案例。无论是初学者还是有经验的开发者,都能在这里找 2437

【Reality Capture 】01:Reality Capture1.5中文版安装教程(附安装包下载)

本文详细介绍了Reality Capture 1.5中文版的安装步骤。首先,下载并解压Reality Capture v1.4.0汉化版安装包,运行EpicInstaller并更改安装路径。接着,启动Epic Games Launcher,登录或注册账号后下载并安装软件。安装完成后,进入主界面并设置中文语言。此外,还提供了中文补丁的拷贝方法,将ui.xml和RealityCapture_CHS.exe文件分别放置到指定目录,并运行RealityCapture_CHS.exe以完成汉化。最后,文章提供了Rea

智慧空间实验室 1750

Yii 2 文件上传行为扩展库:轻松管理你的文件上传任务

Yii 2 文件上传行为扩展库:轻松管理你的文件上传任务 在开发Web应用时,文件上传功能是必不可少的。Yii 2 框架提供了一种优雅的方式——mohorev/yii2-upload-behavior,一个自动处理文件上传的行为(Behavior)扩展,使文件管理和上传过程更加便捷和灵活。 1、项目介绍 mohorev/yii2-upload-behavior 是一个基于Yii 2 的行为类,用于...

gitblog_00008的博客 437

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringBoot 2.x版本+MultipartFile设置指定文件上传大小

SpringBoot-versio:2.1.9-RELEASE 由于新版本的SpringBoot已经弃用了(1.5版本支持)如下, 这种方式,提供了新的 配置方案。 这个是官方的介绍 Handling Multipart File Uploads Spring Boot embraces the Servlet 3javax.servlet.http.PartAPI to support uploading files. By default, Spring Boo...

thlzjfefe的博客 1402

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Ajax文件上传

一、input:file属性 属性值有以下几个比较常用: accept:表示可以选择的文件MIME类型,多个MIME类型用英文逗号分开,常用的MIME类型见下表。 multiple:是否可以选择多个文件,多个文件时其value值为第一个文件的虚拟路径。 1、accept 只能选择png和gif图片 <input id="fileId1" type="file" ac...

bailoushi1658的博客 147

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

struts2文件上传补充

1.RegAction.java 文件的改变 // 接受上传的文件,上传多个文件,只需要将photo,photoFileName,photoContentType声明成数组 private File[] photo;  //接受文件名称 private String[] photoFileName; //接受文件内容的类型 private String[] photoContentTy

XiaoKanZheShiJie的专栏 546

使用plupload实现多文件上传,自定义参数

使用plupload实现多文件上传,自定义参数 1、在开发中可能需要用户附件上传的功能,实现批量上传功能其实就将多个上传任务放到一个集合中,分别上传。  2,使用plupload js插件可以很轻松的实现带参数的多文件上传  3、具体js实现方式          var map={};//文件id为key,文件类型为value的集合   

ccecwg的专栏 1886

ASP.Net大文件上传组件详解

首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Bestcomy.Web.Controls.Upload.dll"(本文件可到官网www.aspnetupload.net下载,本文后面也提供下载),单击"确定",回到VS2008工作界面, Web.config的配置: 在下面加入:     在下面加入:

yf505261213的专栏 4379

上传文件为什么只能上传一次_SpringMVC文件上传

今天来介绍一个关于SpringMVC框架的文件上传功能。首先我个人感觉SpringMVC框架的文件上传还是要比Struts2框架要好用一些,灵活性更强。因为SpringMVC框架的文件上传有几种不同的实现方式,所以我们先给大家介绍基于CommonsMultipartFile来实现文件上传的功能1. 先了解案例实现的效果2. 搭建一下文件上传必备的环境导入commons-fileupload-13....

weixin_39816362的博客 319

《Ext实战》节选:文件上传

《Ext实战》节选:文件上传 转自:http://blog.youkuaiyun.com/tianxiaode/archive/2008/07/30/2742460.aspx   Ext没提供上传组件?很多人都会有这疑问。 其实Ext.form.TextField就是Ext的上传组件的,只要将其配置参数inputType设置为“file”就行了。上传文件除了文件输入框,还有一个重要的设置,就是需要将form的...

lichuhui 166

ElementUI文件上传

之前用ElementUI的Upload的时候追求方便快速,实例化一次又一次,方法一次又一次的调用,代码大几百行还难道维护,今天找了一些资料然后封装了一下,估计还有坑,先做个笔记!!! 组件: 1 <template> 2 <el-upload 3 class="upload-demo" 4 :action="action" ...

ailei8160的博客 235

强大的支持多文件上传的jQuery文件上传插件Uploadify

支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Flash,主要特性:支持多文件上传、HTML5版本可拖拽上传、实时上传进度条显示、强大的参数定制功能,如文件大小、文件类型、按钮图片定义、上传文件脚本等。   Flash版本使用方法: 1.加载JS...

weixin_34279061的博客 677

ELEMENT-UI实现多文件加表单参数上传

element-ui是分图片多次上传,一次上传一个图片。 如果想一次上传多个图片,就得关掉自动上传:auto-upload=‘false’,同时不使用element内置上传函数,换成自己写的onsubmit() 为了实现图片的添加删除,可在on-change与on-remove事件中取得filelist(filelist实质就是uploadFiles的别名,而uploadFiles就是elem...

ssp1000的博客 1万+

IIS上传和下载文件的大小限制

IIS6(win2003) 默认状态下IIS6允许的asp最大上传文件大小为200K即202800字节,而aspx则不受限制! 解决方案: 1、关闭iis admin service服务 2、找到系统盘目录下文件 系统盘\windows\system32\inetsrv\下的metabase.xml 3、修改ASPMaxRequestEntityAllowed值,默认值为202800(字

山鹰的专栏 4259

layui上传图片列表展示_Layui 图片/文件上传 - layui.upload

上传模块自 layui 2.0 的版本开始,进行了全面重写,这使得它不再那么单一,它所包含的不仅是更为强劲的功能,还有灵活的UI。任何元素都可以作为上传组件来调用,譬如按钮、图片、普通的DIV等等,而不再是一个单调的file文件域。模块加载名称:upload快速使用一切从小试牛刀开始。通常情况下,我们上传文件是借助 type="file" 的 input 标签来完成的,但非常遗憾的是,它不能很好地...

weixin_39770165的博客 1012
上一篇: 如何理解Java设计模式中的单一职责原则?
下一篇: 还在用httpclient请求接口?那你就out了
大盛玩java
博客等级 码龄5年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值