
一、本地存储
MultipartFile 翻译过来就是 "多部分文件对象"。由Spring提供
在 Java 代码中,它是一个接口,代表了客户端上传的一个完整文件。你可以通过它轻松获取文件名、文件大小、文件内容(字节流)等信息,并将其保存到服务器磁盘或云存储中。
java
@RestController
@RequestMapping
public class FileUploadController {
@PostMapping("/upload")
public Result<String> upload(MultipartFile file) throws IOException {
//把文件内容存储到本地磁盘
String originalFilename = file.getOriginalFilename();
//保证文件的名字是唯一的,从而防止文件覆盖
originalFilename = UUID.randomUUID().toString()+originalFilename.substring(originalFilename.lastIndexOf("."));
//本地存储
file.transferTo(new File("C:\\Users\\c1338\\Desktop\\files\\"+originalFilename));
return Result.success(url);
}
}
二、云存储


我们直接参考阿里云官网的api文档制作出相应工具类
java
public class AliOssUtil {
private static final String ENDPOINT = "https://oss-cn-beijing.aliyuncs.com";
private static final String ACCESS_KEY_ID = "LTAI5tQ8e13igWZUMTjMEEQV";
private static final String SECRET_ACCESS_KEY = "MffMJoM24sc59SEBEJQDb0cfBVOAC9";
private static final String BUCKET_NAME = "big-event-gwd";
//上传文件,返回文件的公网访问地址
public static String uploadFile(String objectName, InputStream inputStream){
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(ENDPOINT,ACCESS_KEY_ID,SECRET_ACCESS_KEY);
//公文访问地址
String url = "";
try {
// 创建存储空间。
ossClient.createBucket(BUCKET_NAME);
ossClient.putObject(BUCKET_NAME, objectName, inputStream);
url = "https://"+BUCKET_NAME+"."+ENDPOINT.substring(ENDPOINT.lastIndexOf("/")+1)+"/"+objectName;
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return url;
}
}