Springboot2.0 上传图片 jar包导出启动(第二章)

简介: Springboot2.0 上传图片 jar包导出启动(第二章)

一,目录文件结构讲解

简介:讲解SpringBoot目录文件结构和官方推荐的目录规范

1、目录讲解

src/main/java:存放代码

src/main/resources

static: 存放静态文件,比如 css、js、image, (访问方式 http://localhost:8080/js/main.js)

templates:存放静态模板页面jsp,html,tpl

config:存放配置文件,application.properties

resources:

2、引入依赖 Thymeleaf,如果要访问templates文件夹下的资源,需要引入以下依赖。进行页面的转发方式访问。

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

注意:如果不引入这个依赖包,html文件应该放在默认加载文件夹里面,比如resources、static、public这个几个文件夹,才可以访问

3、同个文件的加载顺序,静态资源文件

同个文件的加载顺序,静态资源文件

在 Spring Boot 中,默认情况下,一共有5个位置可以放静态资源,五个路径分别是如下5个:

1、classpath:/META-INF/resources/

2、classpath:/resources/

3、classpath:/static/

4、classpath:/public/

5、/


Spring Boot 默认会挨个从

META/resources > resources > static > public 里面找是否存在相应的资源,如果有则直接返回。

所以访问这些目录下的资源时,在路径中可以体现上面的几个路径。

4、默认配置


1)官网地址:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

2)自己配置:

a.在resources目录下创建。 application.properties

b.重写静态资源加载:spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/


5、静态资源文件存储在CDN,他可以加快静态资源的访问速度。


在大型的公司中可能会实现静态资源和java代码的分离。把静态资源的加载放到另外一个工程中使用。

二,文件上传实战

简介:讲解HTML页面文件上传和后端处理实战

1、讲解springboot文件上传 MultipartFile file,源自SpringMVC

1)静态页面直接访问,不需要进行controller转发:localhost:8080/index.html

注意点:

如果想要直接访问html页面,则需要把html放在springboot默认加载的文件夹下面

2)MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效)


a.在static下创建一个upload.html。页面内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/upload" method="post"  enctype="multipart/form-data" >
        文件:<input type="file"  name="head_img">
        姓名:<input name="username" >
        <input type="submit" value="上传">
    </form>
</body>
</html>

b. 控制类中的代码如下:

    @RequestMapping("/upload")
    public Object upload(@RequestParam("head_img")MultipartFile file){
        String fileFullName = "D://img//123.png";
        File file1 = new File(fileFullName);
        try {
            file.transferTo(file1);
        }catch (IOException e){
            e.printStackTrace();
        }
        return "ok";
    }

c.springboot的默认上传文件大小为1M,如果要上传大于1M的文件需要在application.properties文件中设置:

#单个文件大小和单次请求文件大小
spring.servlet.multipart.max-file-size = 10Mb
spring.servlet.multipart.max-request-size=100Mb

d.文件上传和访问需要指定磁盘路径

解决方式如下:

application.properties中增加下面配置

web.images-path=D:/img
# 在默认访问路径中 添加如上配置
spring.resources.static-locations= classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/ , file:${web.images-path}

e.在D盘的目录里创建一个img的文件夹

测试请参考下面:

访问地址:http://localhost:8080/upload.html

选择好照片然后上传

上传之后会返回一个OK,这就代表上传成功

然后输入你设置的规定名字:123.png

最后打开你在D盘创建的那个img文件夹,里面会有张照片

三,jar包方式运行web项目的文件上传和访问处理(核心知识)

1.在pom中添加依赖

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.先打jar包

这个是你打好jar包的位置,然后在盘服中打开

然后把那个jar包复制到D盘的根目录上

测试项目运行

使用java -jar 命令运行jar文件

这样就运行成功

最后

送大家一句话:自律且努力,别让生活在安逸!!!!

相关文章
|
2月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
2月前
|
网络协议 Java Nacos
Nacos报错问题之jar 包启动就报错误如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
|
2月前
|
Java Shell Docker
Docker启动后怎样运行jar包文件
Docker启动后怎样运行jar包文件
|
2月前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
24 0
|
11天前
|
Java
JSTL jar包版本错误attribute items does not accept any expressions
确保你在 `items` 属性中使用了一个实际的集合或数组变量,而不是表达式,以解决这个问题。
11 0
|
2月前
|
Android开发
Android 开发 读取excel文件 jxl.jar包
Android 开发 读取excel文件 jxl.jar包
8 0
|
2月前
|
存储 Java Spring
SpringBoot的 jar 可以直接运行
SpringBoot的 jar 可以直接运行
15 0
|
2月前
|
Java Serverless 测试技术
Serverless 应用引擎常见问题之上传自定义jar包自动vpc启动报错如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
33 4
|
2月前
|
NoSQL Java 应用服务中间件
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
|
2月前
|
数据采集 移动开发 前端开发
springboot使用html模版导出pdf文档
springboot使用html模版导出pdf文档