首先搭建springboot框架这个就不多说了。不会的小伙伴们,下面附上大佬的博客地址
https://blog.csdn.net/Winter_chen001/article/details/81204116
好了。接下来写如何附上项目结构
废话不多说附上源码
CorsConfig 类
package com.linmutech.demo.common;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 允许任何域名使用
corsConfiguration.addAllowedHeader("*"); // 允许任何头
corsConfiguration.addAllowedMethod("*"); // 允许任何方法(post、get等)
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 对接口配置跨域设置
return new CorsFilter(source);
}
}
PageConstant 类
package com.linmutech.demo.common;
import java.io.File;
/***
* 常量类
* */
public class PageConstant {
//服务器图片存储路径
public static final String FILE_PATH = "E:"+File.separator+"demo"+File.separator+"File";
}
UploadUtils 类
package com.linmutech.demo.common;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/****
* 上传工具类
* */
public class UploadUtils {
public static String uploadFile(MultipartFile file) throws IOException {
//图片保存到服务器
//1获取服务器路径
String filePath=PageConstant.FILE_PATH;
//2.获取上传文件名
String fileName=file.getOriginalFilename();
//拼接文件名
String tupian= getUUID() +fileName.toString();
//判断路径是否存在
File imgFile=new File(filePath);
if (!imgFile.exists()){
imgFile.mkdirs();
}
//4.保存文件 把file文件通过transferTo(path)方法转储到到path中
file.transferTo(new File(filePath+File.separator + tupian));
return tupian.toString();
}
public static String getFileName(MultipartFile file){
String fileName=file.getOriginalFilename();
return getUUID() + fileName;
}
//uuid生成新的名字
public static String getUUID(){
return UUID.randomUUID().toString().replace("-", "");
}
}
uploadController类
package com.linmutech.demo.controller;
import com.linmutech.demo.common.UploadUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.Map;
@Controller
@RequestMapping("/uploads")
class uploadController {
private static final Logger log = LoggerFactory.getLogger(uploadController.class);
@PostMapping("/printuploadl")
@ResponseBody
public String printuploadl(@RequestParam(value = "fileName") MultipartFile file, HttpServletRequest request, Model model) throws IOException {
String fileName = UploadUtils.uploadFile(file);
return fileName;
}
}
application.properties 的内容
# 禁用 thymeleaf 缓存
spring.thymeleaf.cache=false
# 是否支持批量上传 (默认值 true)
spring.servlet.multipart.enabled=true
# 上传文件的临时目录 (一般情况下不用特意修改)
spring.servlet.multipart.location=
# 上传文件最大为 1M (默认值 1M 根据自身业务自行控制即可)
spring.servlet.multipart.max-file-size=1048576
# 上传请求最大为 10M(默认值10M 根据自身业务自行控制即可)
spring.servlet.multipart.max-request-size=10485760
# 文件大小阈值,当大于这个阈值时将写入到磁盘,否则存在内存中,(默认值0 一般情况下不用特意修改)
spring.servlet.multipart.file-size-threshold=0
# 判断是否要延迟解析文件(相当于懒加载,一般情况下不用特意修改)
spring.servlet.multipart.resolve-lazily=false
还有maven依赖包
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.linmutech</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
以上就是上传的内容,其实很多类的内容可以写到一起的。但由于我之后还要加一些操作,这样比较容易区分
对于上传我也是一知半解,反正,大概思路就是,先保存到服务器某个文件夹内,然后返回名字,存到数据库,然后查询的时候前端就链接+名字就可以读取了