依赖配置:
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.18</version> </dependency>
只是上传文件接口代码,download没写:
package zero.file.videoProject.controller; import cn.hutool.core.io.FileUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import zero.file.videoProject.bean.Result; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; @RestController @RequestMapping("/file") public class FileController { @Value("${ip:localhost}") String ip; @Value("${server.port}") String port; @PostMapping("/upload") public Result upload(MultipartFile file) throws IOException { String originalFilename = file.getOriginalFilename(); // 文件的原始名称 String mainName = FileUtil.mainName(originalFilename); String extName = FileUtil.extName("文件的后缀"); // 当前文件的目录 String projectPath = System.getProperty("user.dir"); //D:\project\零一电科\技术资料\lingyidianke\zeroBackEnd String filesPath = projectPath + "\\files"; // 文件存储的目录 //D:\project\零一电科\技术资料\lingyidianke\zeroBackEnd\files File parentFile = new File(filesPath); // 判断一下文件存储的路径存不存在,这种主要是文件上传重名问题 if (!parentFile.exists()){ // 如果不存在,创建这样一个目录 parentFile.mkdirs(); } // 如果当前文件的父级目录不存在 File saveFile = new File(filesPath + File.separator + originalFilename); if (saveFile.exists()){ originalFilename = System.currentTimeMillis() + "_" + mainName+ "." + extName; saveFile = new File(filesPath + File.separator + originalFilename); // D:\project\零一电科\技术资料\lingyidianke\zeroBackEnd\files\\121232312321323_aaa.png } file.transferTo(saveFile); String url = "http://" + ip + ":" + port + "/file/download/" + originalFilename; return Result.success(url); } @GetMapping("/download/{fileName}") public void download(HttpServletResponse response) throws IOException { ServletOutputStream outputStream = response.getOutputStream(); outputStream.write(new byte[1024]); } }
yml相关配置:
ip: localhost server: port: 9090
给他做一个判断,
给它添加一个随机数,判断一个文件
定义一个变量设置文件名称
fileName就是实际存储到盘的名称
上传文件接口
这里的file是一致的
这里直接写Url就会出问题,这里要添加一些东西
在配置文件中添加ip注解
${ip}
ip: localhost
使用他时,用
@Value("${ip}")
放行成功,得到这个结果
文件的分割符File.separator 是文件的分隔符,加上是为了保证图片能够正常下载,目录和文件之间要有分隔符
上传图片最后显示成功