工具类
package com.hexu.demo7.util;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@Slf4j
public class FileNameUtil {
private static String endpoint = "https://oss-cn-beijing.aliyuncs.com你自己的";
private static String accessKeyId = "你的accessKeyId";
private static String accessKeySecret = "你的accessKeySecret";
private static String bucketName = "你的bucket名称";
private static String objectKey = "你的目录名称";
static int i = 0;
public static String getUUIDFileName() {
UUID uuid = UUID.randomUUID();
return uuid.toString().replace("-", "");
}
public static String getRealFileName(String context) {
int index = context.lastIndexOf("=");
String filename = context.substring(index + 2, context.length() - 1);
return filename;
}
public static String getFileType(String fileName) {
int index = fileName.lastIndexOf(".");
return fileName.substring(index);
}
public static Map<String, String> stringMap(MultipartFile[] pimage) {
HashMap<String, String> objectObjectHashMap = new HashMap<>();
if (null == pimage) {
return null;
}
for ( i = 0; i < pimage.length; i++) {
MultipartFile multipartFile = pimage[i];
if (!multipartFile.isEmpty()) {
String file_name = FileNameUtil.getUUIDFileName() + FileNameUtil.getFileType(multipartFile.getOriginalFilename());
log.info(file_name);
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
InputStream multipartFileInputStream = multipartFile.getInputStream();
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,file_name, multipartFileInputStream);
ossClient.putObject(putObjectRequest);
} catch (IOException e) {
e.printStackTrace();
}finally {
ossClient.shutdown();
}
objectObjectHashMap.put(String.valueOf(i), "路径" + file_name);
}
}
return objectObjectHashMap;
}
public static void filedelete(String fileName){
log.info(fileName);
if (null != fileName && "" != fileName) {
int index = fileName.indexOf("/");
index = fileName.indexOf("/", index + 2);
String result = fileName.substring(index + 1);
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.deleteObject(bucketName, result);
ossClient.shutdown();
}
}
}
前端配置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>文件上传</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data" action="/providerAll">
<p>文件1:<input type="file" name="file"/></p>
<p>文件2:<input type="file" name="file"/></p>
<p><input type="submit" value="上传" /></p>
</form>
</body>
</html>
后端实现
@PostMapping("/providerAll")
public String providerAll(SmbmsProvider provider, @RequestParam("file") MultipartFile[] pimage) throws IOException {
provider.setCreationdate(LocalDateTime.now());
Map<String, String> map = FileNameUtil.stringMap(pimage);
provider.setUploadfileerror(map.get("0"));
provider.setUploadocerror(map.get("1"));
smbmsProviderService.save(provider);
return "providerlist";
}