文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 1)引入阿里云的OSS依赖
- 2)后端工具
- 3)实体类
- 4)前端的布局
- 5)后台代码
1)引入阿里云的OSS依赖
com.aliyun.oss aliyun-sdk-oss3.10.2
2)后端工具
package com.zsb.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.Calendar;
import java.util.UUID;
public class OSSUtils {
public static String upload(MultipartFile myfile){
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "**********************";
String accessKeySecret = "*********************";
// 填写Bucket名称,例如examplebucket。
String bucketName = "zsbzzz";
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
String objectName = fileName(myfile);
// 填写本地文件的完整路径,例如D:\localpath\examplefile.txt。
// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
InputStream inputStream = myfile.getInputStream();
ossClient.putObject(bucketName, objectName, inputStream);
} catch (Exception e) {
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
String url ="https://"+bucketName+"."+endpoint+"/"+objectName;
return url;
}
private static String fileName(MultipartFile myfile){
Calendar calendar = Calendar.getInstance();
String name = calendar.get(Calendar.YEAR)+
"/"+(calendar.get(Calendar.MARCH)+1)+
"/"+calendar.get(Calendar.DATE)+
"/"+ UUID.randomUUID().toString().replace("-","")+
myfile.getOriginalFilename();
return name;
}
}
3)实体类
package com.zsb.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private String pwd;
private String address;
private String avatarUrl;
}
package com.zsb.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResult {
private Integer code;
private String msg;
private Object data;
}
4)前端的布局
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
提交
5)后台代码
package com.zsb.controller;
import com.zsb.entity.CommonResult;
import com.zsb.entity.User;
import com.zsb.utils.OSSUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
@Controller
public class UserController {
@RequestMapping("/uploadAvatar")
@ResponseBody
public CommonResult addUser(MultipartFile file){
try {
String avatar = OSSUtils.upload(file);
return new CommonResult(2000,"上传成功",avatar);
}catch (Exception e){
e.printStackTrace();
}
return new CommonResult(5000,"上传失败",null);
}
@RequestMapping("/addUser")
@ResponseBody
public CommonResult addUser(@RequestBody User user){
System.out.println(user);
return new CommonResult(2000,"成功",null);
}
}



