SpringBoot图片上传和访问路径映射图片上传和访问路径映射
主要为大家详细介绍了SpringBoot图片上传和访问路径映射,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
简介简介
做移动端对接,框架用的SpringBoot,接口RESTful,实现一个图片上传功能,图片上传是个经典的应用场景了,完成后,做个笔记记录一
下,希望能帮到攻城狮们
开发步骤开发步骤
1、先贴图片上传工具类、先贴图片上传工具类
package com.prereadweb.utils;
import java.io.File;
import java.io.FileOutputStream;
import java.util.UUID;
/**
* @Description: 文件工具类
* @author: Yangxf
* @date: 2019/4/17 16:06
*/
public class FileTool {
/**
* @Function: 图片上传
* @author: YangXueFeng
* @Date: 2019/4/18 14:13
*/
public static void uploadFiles(byte[] file, String filePath, String fileName) throws Exception {
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
FileOutputStream out = new FileOutputStream(filePath + fileName);
out.write(file);
out.flush();
out.close();
}
/**
* @Function: 创建新的文件名
* @author: YangXueFeng
* @Date: 2019/4/17 17:57
*/
public static String renameToUUID(String fileName) {
return UUID.randomUUID() + "." + fileName.substring(fileName.lastIndexOf(".") + 1);
}
}
2、、contoller层层
/**
* @Function: 用户图片上传
* @author: Yangxf
* @Date: 2019/4/17 15:42
*/
@PostMapping("/postfile")
public Object fileUpload(@RequestParam(value = "userImg", required = false) MultipartFile file, @RequestParam(value = "userId", required = false) Long userId) {
return personalService.fileUpload(file, userId);
}
此处提一下@RequestParam注解
value:前台所传参数的名称
required:它有两个参数,true/false,默认是true,如果设置的是true的,客户端如果传值为空的话,访问此接口会报500异常,如果是false的
话,客户端传值为空,会默认给参数赋值null
3、、service层层
/**
* @Function: 用户头像上传
* @author: YangXf
* @Date: 2019/4/17 15:41
* @param: file 图片
* @param: userId 用户ID
* @return: map
*/
@Override
public Map<String, Object> fileUpload(MultipartFile file, Long userId) {
Map<String, Object> map = new HashMap<>();
if (Util.isEmpty(file)) {
System.out.println("文件为空空");
map.put("code", UserStatusEnum.EMPTY.intKey());
map.put("msg", UserStatusEnum.EMPTY.value());
评论5