笔记

8、jar包方式运行web项目的文件上传和访问处理(核心知识)
    简介:讲解SpingBoot2.x使用 java -jar运行方式的图片上传和访问处理

1、文件大小配置,启动类里面配置
        
            @Bean  
            public MultipartConfigElement multipartConfigElement() {  
                MultipartConfigFactory factory = new MultipartConfigFactory();  
                //单个文件最大  
                factory.setMaxFileSize("10240KB"); //KB,MB  
                /// 设置总上传数据总大小  
                factory.setMaxRequestSize("1024000KB");  
                return factory.createMultipartConfig();  
            }

2、打包成jar包,需要增加maven依赖
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        如果没加相关依赖,执行maven打包,运行后会报错:no main manifest attribute, in XXX.jar

GUI:反编译工具,作用就是用于把class文件转换成java文件

3、文件上传和访问需要指定磁盘路径
        application.properties中增加下面配置
            1) web.images-path=/Users/jack/Desktop
            2) spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}

4、文件服务器:fastdfs,阿里云oss,nginx搭建一个简单的文件服务器

开始

上传一个大文件


文件超过了最大的限制

把代码复制到application启动类里面

一定要是带@SpringBootConfiguration的类里面

SpringBootConfiguration注解里面包含了@Configuration这个注解

引入对应的包后。

启动应用。

上传的这个图片1.2M

上传成功了

打成jar包

打包当前项目

打包成功

打包后会放在target的目录里面

运行这个jar包

错误:找不到入口启动类

打包的时候需要一个maven的依赖

这是spring-boot提供的插件。帮我打包成一个jar包

再次打包

把压缩包解压出来

BOOT-INF:字节码文件和依赖的jar包

MAINFEST.MF:最主要的是Main-Class:类加载器 加载我们对应的应用

Start-Class:入口。刚才的jar包报错就是找到XdclassApplication

就是我们源码的这里

配置上传的固定路径


第二行配置最后加一行

这里先把上传路径写死到这里。因为我们还没有学习读取配置文件。之类暂时把路径写死

再次打包

运行 程序

上传一个图片

因为配置的是桌面上,所以上传到了桌面上

也就是配置的这个目录:User/jack/Desktop

可以直接访问这个图片

扩展知识

转载于:https://www.cnblogs.com/wangjunwei/p/11397504.html

小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_13、jar包方式运行web项目文件上传和访问...相关推荐

  1. 【零基础入门SpringBoot2】—— 核心功能_配置文件与Web开发

    一.配置文件

  2. L2、L3协议开发之以太网交换机基础

    1.以太网的基础 以太网是一种能够使计算机进行相互传递信息的介质,它利用二进制位形成一个个的字节,这些字节然后组合成一帧帧的数据.帧有一个起点,我们称之为帧头:也有终点,我们称之为作帧尾.在每个帧报头 ...

  3. python基础入门大作业怎么做_【百度飞桨】零基础Python课程大作业

    转眼间百度飞桨的零基础python课程马上就要结束了,所谓年前学python,年后来上号,通过本次课程可以对python有一个基础的认知和掌握,以下是大作业的个人代码,仅供参考. [作业一] #创建S ...

  4. java基础入门第二版思维导图,Java 学习--你应该有份思维导图了(基础篇)

    每一门知识,除了理解它的一些原理用法之外,我觉得还有一点比较重要,那就是多整理笔记做总结. 以下是我自己亲自整理的关于 Java 学习的思维导图,分享出来希望能对大家在学习 Java 过程中有所帮助, ...

  5. C语言 *p++/*(p)++/*(p++)/*p++ - C语言零基础入门教程

    目录 一.简介 二.*p++ 三.*++ p/++ *p 四.* (p++)与*(++p) 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...

  6. 慕课学习史上最全零基础入门HTML5和CSS笔记

    慕课学习史上最全零基础入门HTML5和CSS笔记 Html和CSS的关系 学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的 ...

  7. c语言用if语句abc输出最大值,C语言基础入门选择结构-if语句(78页)-原创力文档...

    C语言基础入门选择结构-if语句_电脑基础知识_IT/计算机_专业资料.第9单元选择结构-if语句<程序设计基础>北京八维研修学院第1节选择结构导入?... <程序设计基础> ...

  8. Android基础入门教程——2.3.1 TextView(文本框)详解

    Android基础入门教程--2.3.1 TextView(文本框)详解 标签(空格分隔): Android基础入门教程 本节引言: 学习完Android中的六大布局,从本节开始我们来一个个讲解And ...

  9. 大数据基础入门 ------文章来源于:某个入门课程

    文章目录 第一课:大数据基础入门 什么是大数据? java和大数据的关系 学习大数据需要的基础和路线 第二课:Hadoop的背景起源 一 分布式存储 如何解决大数据的存储?(HDFS) 第三课: ha ...

  10. 最新Android基础入门教程目录(完结版)

    第一章:环境搭建与开发相关(已完结 10/10) https://blog.csdn.net/coder_pig/article/details/50000773 Android基础入门教程--1.1 ...

最新文章

  1. 自动化运维工具Saltstack(一)
  2. 分类器是如何做检测的?(2)——【续】检测中的LBP和HAAR特征计算过程
  3. C语言数据结构学习用单元测试
  4. linux安装zookeeper+使用命令
  5. vue学习笔记(1)-组件通信
  6. 前端学习(1575):复习todoMVC
  7. matlab对图像进行傅里叶变换_数字图像处理(一)—— 傅里叶变换
  8. easyui 控制某列显示不显示_baogaiMCU控制OLED显示屏
  9. Web端打开文件选择和保存对话框
  10. HDU-时间挑战 树状数组
  11. 原生jsonp发送跨域请求
  12. 利用matlab的帮助功能分别查询inv,MATLAB实验报告第一章..doc
  13. python 全局解释器锁_python全局解释器锁(GIL)
  14. ADO.Net之SqlConnection、 Sqlcommand的应用
  15. 深入学习之mysql(二)表的操作
  16. linux虚拟机安装samba服务,在虚拟机Redhat Linux下安装Samba服务器分享
  17. matlab位图矢量化,位图矢量化的处理算法研究
  18. Day754.Pika键值对数据库 -Redis 核心技术与实战
  19. widows 句柄HINSTANCE
  20. 微信应用签名配置方法

热门文章

  1. 孙鑫VC学习笔记:第二十讲 (二) ado数据库编程
  2. c html 转 pdf,HTML 转 PDF
  3. 拓端tecdat|R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析
  4. 拓端tecdat|R语言生存分析: 时变竞争风险模型分析淋巴瘤患者
  5. 拓端tecdat|R语言时间序列:ARIMA / GARCH模型的交易策略在外汇市场预测应用
  6. (2)评价算法-TOPSIS算法
  7. mysql 加速_DBA大牛MySQL优化心得,语句执行加速就是这么简单!
  8. pytorch数据集
  9. BFGS优化算法简介
  10. Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)