pom引入阿里云OSS依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.8.0</version>
</dependency>
创建OSS上传工具类
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import java.io.File;
public class uploadOss {
private static String endpoint = "";
private static String accessKeyId = "";
private static String accessKeySecret = "";
private static String bucketName = "";
//饿汉单例
public static uploadOss oss=new uploadOss();
private uploadOss(){};//私有构造方法防止外部实例化
public static uploadOss getInstance()
{
return oss;
}
//上传文件到OSS
public String uploadOSS(File file,String filename){
String state="true";
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, filename, file);
ossClient.putObject(putObjectRequest);
ossClient.shutdown();
}
catch (Exception e){
state="false";
}
return state;
}
}
编写上传页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/Upload"method="post" enctype="multipart/form-data">
<input type="file" name="files" multiple>
<input type="submit" value="提交">
</form>
</body>
</html>
Controller
//将MultipartFile转为File
public File multipartToFile(MultipartFile multfile) throws IOException {
File file = null;
file = File.createTempFile("prefix","_" + multfile.getOriginalFilename());
multfile.transferTo(file);
return file;
}
@PostMapping("/Upload" )
@ResponseBody
public Map<String, Object> headImgUpload( MultipartFile files,HttpServletRequest request) {
File file = null;
try {
file=multipartToFile(files);
} catch (IOException e) {
e.printStackTrace();
}
Map<String, Object> value = new HashMap<String, Object>();
uploadOss oss=uploadOss.getInstance();
value.put("success",oss.uploadOSS(file,files.getOriginalFilename()));
return value;
}
如果要预览文件,url路径为:http://BucketName+"."+EndPoint+"/"+"aliyuncs.com"+"/"+文件名
例:https://fruitbuy.oss-cn-beijing.aliyuncs.com/8720191127162741.jpg