-
1、首先导入阿里云oss sdk 依赖
<!--阿里oss sdk--> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.17.2</version> </dependency>
-
2、创建controller
@ApiOperation(value = "文件上传") @PostMapping("/uploadFile") public CommonResult<UploadFileDto> uploadFile(@RequestParam("file") MultipartFile file,@RequestParam(value = "fileType",required = false)Integer fileType,@RequestParam(value = "fileName",required = false)String fileName) throws Exception { // 上传至阿里云 return uploadFileService.singleFileUpload(file,fileType,fileName); }
-
3、service
/** * 阿里云oss文件上传 * * @author yubin * @date 2024/4/2 16:08 * @param file 文件 * @param fileType 文件类型 * @param fileName 文件名称 * @return com.xinwei.olden.common.CommonResult<com.xinwei.olden.dto.UploadFileDto> */ CommonResult<UploadFileDto> singleFileUpload(MultipartFile file, Integer fileType, String fileName);
-
4、实现类
/** * 阿里云oss文件上传 * * @author yubin * @date 2024/4/2 16:08 * @param file 文件 * @param fileType 文件类型 * @param fileName 文件名称 * @return com.xinwei.olden.common.CommonResult<com.xinwei.olden.dto.UploadFileDto> */ CommonResult<UploadFileDto> singleFileUpload(MultipartFile file, Integer fileType, String fileName);
-
5、以及自己封装的工具类
package com.xinwei.olden.util; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.xinwei.olden.dto.UploadFileDto; import com.xinwei.olden.service.UploadFileService; import com.xinwei.olden.vo.TeacherCertFileVo; import com.xinwei.olden.vo.UploadFileVo; import com.xinwei.olden.vo.req.FileZipReqVo; import lombok.Data; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import javax.annotation.PostConstruct; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.time.LocalDateTime; import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 文件上传工具类 * * @author yubin * @date 2023/11/23 17:19 */ @Component @Data @ConfigurationProperties(prefix = "upload") public class UploadUtils { /** * 验证图片格式是否允许上传 * * @author yubin * @date 2023/11/24 10:37 * @param targetValue 目标文件格式 * @return boolean */ public static boolean img_check(String targetValue) { String[] arr = new String[]{".jpg", ".jpeg", ".png", ".gif"}; return Arrays.asList(arr).contains(targetValue); } /** * 验证文件格式是否允许上传 * * @author yubin * @date 2023/11/24 10:37 * @param targetValue 目标文件格式 * @return boolean */ public static boolean doc_check(String targetValue) { String[] arr = new String[]{".doc", ".pdf", ".docx", ".xlsx", ".xls"}; return Arrays.asList(arr).contains(targetValue); } }
-
6、阿里oss配置类,放置阿里云oss服务器具体的配置参数
package com.xinwei.olden.constant; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * OSS 阿里oss配置 * * @author yubin * @date 2024/4/2 15:44 */ @Configuration @Data public class OssConfig { @Value("${oss.accessKeyId}") private String accessKeyId; @Value("${oss.accessKeySecret}") private String accessKeySecret; @Value("${oss.endPoint}") private String endPoint; @Value("${oss.bucketName}") private String bucketName; @Value("${oss.domain}") private String domain; @Bean public OSS getOssClient() { return new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret); } }
-
7、我部署的是springboot2.7.5项目,单机版的所有配置都写在application-dev.yml里
oss: accessKeyId: oss的accessKeyId accessKeySecret: oss的accessKeySecret endPoint: 自己购买的服务器域名 bucketName: 阿里云桶名称 domain: 阿里云oss地址
以上都弄好后,接口上传文件至阿里云服务器
- THE END -
最后修改:2024年4月27日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.forest88.top/2024/04/24/224/
共有 0 条评论