
commons-io
commons-io
2.4
#配置mysql的连接
spring:
#图片上传
servlet:
multipart:
enabled: true
max-file-size: 50MB
max-request-size: 50MB
js中定义函数 图片上传
public class FileUtil {
//上传
/**
* uploadFile(上传)
* 创建人:wrx
* 创建时间:2023年3月29日 下午3:21:17
* 修改人:ba
* 修改时间:2023年3月29日 下午3:21:17
* 修改备注:
* @param imgfile
* @param request
* @return
*/
public static String uploadFile(MultipartFile imgfile,HttpServletRequest request){
//1、上传路径:项目发布tomcat服务器
//D:\workUtilsInstall\apache-tomcat-8.0.0\webapps\week_employee_hzy\\upload
String path = request.getServletContext().getRealPath("/")+"/upload";
File file = new File(path);
if(!file.exists()){//不存在
file.mkdirs();
}
//生成新的文件名称,原因:防止文件名称一样后者上传的文件会覆盖前者上传的文件(前提是文件名称必须一样并且在用一个目录下)
//生成新的文件名称,保证文件名称唯一有两种方法:
// 1.通过UUID实现文件名称唯一 (UUID会生成32位字母+数字唯一的一个字符串)
// 2.通过时间戳现文件名称唯一 (时间戳是毫秒级时间 时间会一直往上加,生成13位数字)注意只有java生成13位 其他则是10位比如oracle、mysql、php
// 获取时间戳
//long currentTimeMillis = System.currentTimeMillis();
//System.out.println(currentTimeMillis);
String uuid = UUID.randomUUID().toString();
String oldName = imgfile.getOriginalFilename();//1.jpg
String suffix = oldName.substring(oldName.lastIndexOf("."));
String newFile = uuid+suffix;
File file2 = new File(path+"\\"+newFile);
try {
imgfile.transferTo(file2);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "upload/"+newFile;
}
}
/**
*
*调用图片上传工具类
* @param imgfile
* @param request
* @return java.lang.String
* @author wrx
* @date 2023/5/17 0017 16:00
*/
@RequestMapping("uploadImg")
public String uploadImg(MultipartFile imgfile, HttpServletRequest request){
String filePath = FileUtil.uploadFile(imgfile, request);
System.out.println("{\"path\":\"" + filePath + "\"}");
return "{\"path\":\"" + filePath + "\"}";//可以
}

访问这个路径http://localhost:8080/upload/b54e356b-6dba-48ae-8ea1-27b4dad158b5.png

上一篇:MySQL----多表查询