Java MultipartFile实现上传文件/上传图片
时间:2022-03-12 08:49:27|栏目:JAVA代码|点击: 次
1. 判断允许上传文件的 文件后缀/图片后缀/相片后缀 和 其它工具类
import org.springframework.stereotype.Component;
import java.io.File;
import java.util.Arrays;
import java.util.List;
@Component
public class FileUtil {
public static final List<String> IMAGE_EXTENSIONS = Arrays.asList(".jpg", ".jpeg", ".png");
}
import java.util.UUID;
public class CommonUtil {
public static String getUUID() {
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
return uuid;
}
}
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateUtil {
public static final String HH = "HH";
public static final String YYYY_MM_DD = "yyyy-MM-dd";
public static final DateTimeFormatter FORMATTER_HH = DateTimeFormatter.ofPattern(HH);
public static final DateTimeFormatter FORMATTER_YYYY_MM_DD = DateTimeFormatter.ofPattern(YYYY_MM_DD);
public static String getHH() {
return FORMATTER_HH.format(LocalDateTime.now());
}
public static String getYYYYMMDD() {
return FORMATTER_YYYY_MM_DD.format(LocalDateTime.now());
}
}
2. 上传接口
@PostMapping("/updateImage.do")
public Map<String, String> updateImage(@RequestParam("image") MultipartFile[] multfiles) {
Map<String, String> result = new HashMap<>();
if (multfiles.length == 0) {
result.put("message", "请选择图片!");
return result;
}
// 源文件名称
final String originalFileName = multfiles[0].getOriginalFilename();
if (StringUtils.isBlank(originalFileName)) {
result.put("message", "请选择图片!");
return result;
}
// 文件后缀[.jpg]
final String suffix = originalFileName.substring(originalFileName.lastIndexOf(".")).toLowerCase();
if (!FileUtil.IMAGE_EXTENSIONS.contains(suffix)) {
result.put("message", "图片格式错误!");
return result;
}
String lastFilePath;
String newFileName = CommonUtil.getUUID() + suffix;
String folderName = File.separator + "temp" + File.separator;
String relativePath = folderName + DateUtil.getYYYYMMDD() + File.separator + DateUtil.getHH();
String filePath = "D:\\file" + relativePath;
String fileUrl = null;
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
FileOutputStream out = null;
try {
lastFilePath = filePath + File.separator + newFileName;
out = new FileOutputStream(lastFilePath);
out.write(multfiles[0].getBytes());
fileUrl = "http://127.0.0.1:9000" + relativePath + File.separator + newFileName;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
if (fileUrl == null) {
result.put("message", "图片上传失败!");
return result;
}
result.put("message", "上传成功!");
result.put("url", fileUrl);
return result;
}
3. 上传成功
url => http://127.0.0.1:9000/temp/2019-09-12/14/0eac00b96f134652b34172e84febe8d1.jpg
上一篇:Java算法之堆排序代码示例
栏 目:JAVA代码
下一篇:Java 使用 HttpClient 发送 GET请求和 POST请求
本文标题:Java MultipartFile实现上传文件/上传图片
本文地址:http://www.codeinn.net/misctech/195980.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




