【阿里云上传图片,url访问强制下载 _图片上传 】 | IT修真院·坑乎
咨询电话 : 010-59478634
切换导航
首页
我的提问
我的回答
我的点赞
消息通知
个人主页
×
提示
尚未登陆,前往官网登陆?
×
提示
尚未登陆,前往官网登陆?
阿里云上传图片,url访问强制下载
我也踩过这个坑(
1
)
已统计您的踩坑,无需重复点击
回答(1)
图片上传
详细描述
调用阿里云OSS接口,上传图片或文件,url访问只能强制下载,无法查看图片。
源码
public class AliyunOSSUtil { private static Logger logger = Logger.getLogger(AliyunOSSUtil.class); private String endpoint; private String accessKeyId; private String accessKeySecret; // Bucket用来管理所存储Object的存储空间,详细描述请参看“开发人员指南 > 基本概念 > OSS基本概念介绍”。 // Bucket命名规范如下:只能包括小写字母,数字和短横线(-),必须以小写字母或者数字开头,长度必须在3-63字节之间。 private static String bucketName = "jnshu-7012"; public AliyunOSSUtil(String endpoint, String accessKeyId, String accessKeySecret) { this.endpoint = endpoint; this.accessKeyId = accessKeyId; this.accessKeySecret = accessKeySecret; } public String upPhoto(MultipartFile multipartFile){ // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 使用 UUID 给图片重命名,并去掉四个“-” String name = UUID.randomUUID().toString().replaceAll("-", ""); // 获取图片名称 String ext = multipartFile.getOriginalFilename(); // 获取图片的后缀名称,含“.” String suffix = ext.substring(ext.lastIndexOf(".")); String photoName = name + suffix ; try { // 判断Bucket是否存在。 if (ossClient.doesBucketExist(bucketName)) { logger.info("您已经创建Bucket:" + bucketName + "。"); } else { logger.info("您的Bucket不存在,创建Bucket:" + bucketName + "。"); // 创建Bucket。 ossClient.createBucket(bucketName); } // Object是OSS存储数据的基本单元,称为OSS的对象,也被称为OSS的文件。详细描述请参看“开发人员指南 > 基本概念 > OSS基本概念介绍”。 // Object命名规范如下:使用UTF-8编码,长度必须在1-1023字节之间,不能以“/”或者“\”字符开头。 // oss中没有文件夹的概念,如果想传到对应的目录下,可以在object名称前添加对应的路径。 String fileName = "minImage/" + photoName; // 上传文件。
由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。 // 数据流上传,将 MultipartFile 转为 InputStream,适用于所有的InputStream子类。 ossClient.putObject(bucketName,fileName,new ByteArrayInputStream(multipartFile.getBytes())); // 关闭OSSClient。 ossClient.shutdown(); // 添加图片处理样式有两种方式,此处是添加样式对应的代码(等比缩小为30%),还可以添加样式的名称,如“ ?x-oss-process=style/30suoluetu ” String url = "https://jnshu-7012.oss-cn-beijing.aliyuncs.com/" + fileName + "?x-oss-process=image/auto-orient,1/resize,p_30/quality,q_90"; return url; } catch (OSSException oe) { logger.error("出现异常1,异常为:" + oe.getMessage()); } catch (ClientException ce) { logger.error("出现异常2,异常为:" + ce.getMessage()); } catch (Exception e) { logger.error("出现异常3,异常为:" + e.getMessage()); } return null; } }
编辑于2024-11-24
时间排序
热门排序
[北京|荣耀师兄]JAVA-张恒
0
阿里的文件上传是默认强制下载的,图片如果想要使用url直接查看,可以修改图片的http头,将content-type设置成“image”即可。
查看全部>
编辑于2019-12-14
首页
1
末页
去第
页
确定
Copyright ©2015 北京葡萄藤信息技术有限公司 All Rights Reserved | 京ICP备15035574号-1
复制链接
新浪微博
微信扫一扫
3775
0
10
阿里云上传图片,url访问强制下载
1
1