博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OSS 上传图片
阅读量:3952 次
发布时间:2019-05-24

本文共 4397 字,大约阅读时间需要 14 分钟。

final OSS oss;    final AliOssProperties ossProperties;    @RequestMapping("/file")    public R uploadFile(@RequestPart MultipartFile file) throws IOException {
String newFileName = AliyunOssUtil.getNewFileName(ExtUtil.fileExtName(file.getOriginalFilename())); PutObjectResult resp = oss.putObject(ossProperties.getBucketName(), newFileName , file.getInputStream() ); System.out.println(resp); return R.res() .put("url", ossProperties.getHost()+'/'+newFileName); }
package com.github.lyr.common.util;import cn.hutool.core.date.DateTime;/** * @author 大雨两点 * @version 1.0 * @date 2021/1/17 21:45 */public   class AliyunOssUtil {
// private static final Logger logger = LoggerFactory.getLogger(com.javatribe.apishare.utils.AliyunOssUtil.class); /** * 博客上传的图片放在article这个文件夹中 */ private static final String BASE_FOLDER = "javaweb_upload/"; /** * 单张图片大小上限为5M */ private static final long MAX_SIZE = 5 * 1000 * 1000; /** * 允许的文件类型 */ private static final String[] FILE_TYPES = {
/*"GIF", "JPG", "JPEG", "PNG","bmp",*/"jpg","png","tif","gif","pcx" ,"tga","exif","fpx","svg","psd","cdr","pcd","dxf","ufo","eps","ai","raw","WMF","webp","avif"}; /** * 将原先的文件名替换为时间序列 * @param fileType * @return */ public static String getNewFileName(String fileType){
DateTime dateTime = new DateTime(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(BASE_FOLDER); stringBuilder.append(dateTime.toString("yyyyMMddHHmmss")); stringBuilder.append(getMillTime(dateTime)); stringBuilder.append("."); stringBuilder.append(fileType); return stringBuilder.toString(); } /** * 获取格式化之后剩下的毫秒值 * @param dateTime * @return */ public static long getMillTime(DateTime dateTime){
long time = dateTime.getTime() % 10000; return time; } // /** // * 上传图片, 根据各种情况返回对应的枚举项 // * @param oss 对象存储客户端对象 // * @param multipartFile 上传的文件 // * @param bucketName oss桶名 // */ // public static UploadStatus uploadImage(OSS oss, MultipartFile multipartFile, String bucketName) {
// if (multipartFile == null || multipartFile.getSize() == 0) {
// return UploadStatus.FILE_ISNULL; // } // if (isOverflow(multipartFile.getSize())) {
// return UploadStatus.FILE_SIZE_OVERFLOW; // } // String fileName = multipartFile.getOriginalFilename(); // if (fileName == null || "".equals(fileName.trim())) {
// return UploadStatus.FILE_TYPE_NOTMATCH; // } // String[] temp = fileName.split("\\."); // String fileType = temp[temp.length - 1]; // if(!isMatchType(fileType)) {
// return UploadStatus.FILE_TYPE_NOTMATCH; // } // String newFileName = getNewFileName(fileType); // try {
// oss.putObject(bucketName, newFileName, new ByteArrayInputStream(multipartFile.getBytes())); // } catch (IOException e) {
// logger.info(e.getLocalizedMessage()); // return UploadStatus.FILEUPLOAD_FAIL; // } // UploadStatus uploadStatus = UploadStatus.FILEUPLOAD_SUCCESS; // uploadStatus.setMessage("/" + newFileName); // return uploadStatus; // }; /** * 判断文件大小知否超过上限 * @param fileSize 文件大小 * @return */ public static boolean isOverflow(long fileSize) {
return fileSize > MAX_SIZE ? true : false; } /** * 判断上传的文件类型是否满足条件 * @param fileType * @return */ public static boolean isImg(String fileType) {
fileType = fileType.toUpperCase(); for (String type : FILE_TYPES) {
if (type.equalsIgnoreCase(fileType)) {
return true; } } return false; }}
package com.github.lyr.common.util;import cn.hutool.core.util.StrUtil;/** * @Author lyr * @create 2021/2/15 22:24 */public class ExtUtil {
/** * 获取文件后缀名字 * @param name * @return */ public static String fileExtName(String name) {
if (StrUtil.isBlank(name)) {
throw new RuntimeException("it is blank str"); } return name.substring(name.lastIndexOf(".") + 1); }}

转载地址:http://fbyzi.baihongyu.com/

你可能感兴趣的文章
linux 2.6 输入子系统 键盘驱动的实现
查看>>
Linux Input Device
查看>>
学习ARM+Linux的很好的资料
查看>>
linux spi子系统 驱动分析续
查看>>
linux设备模型深探
查看>>
SPI设备的驱动
查看>>
Linux 2.6下SPI设备模型--------基于AT91RM9200分析
查看>>
struct device 结构
查看>>
S3C2440上触摸屏驱动实例开发讲解
查看>>
一个基于linux2.6内核下S3C2410触摸屏驱动
查看>>
Linux 内核/sys 文件系统介绍
查看>>
AMBA、AHB、APB总线简介
查看>>
开关功率mos管介绍
查看>>
Porting Guide of Android Power to Marvell 2.6.24
查看>>
Android编译环境(4) - Android内核编译方法(未公开源码)
查看>>
Android Power Management
查看>>
Android对Kernel的改动汇总
查看>>
"android linux kernel" VS "standard linux kernel"
查看>>
Android电源管理概念
查看>>
老手经验谈:Linux驱动程序开发学习步骤
查看>>