阿里OSS上传图片不支持预览
OSS上传图片不支持预览
第一点就是设置文件的ACL(权限)
注意一点权限要么是公共读写,要么是公共读
/**
* 主要运用到的就是阿里的类 ObjectMetadata
*/
ObjectMetadata objectMetadata = new ObjectMetadata();
//设置公共读权限
objectMetadata.setObjectAcl(CannedAccessControlList.PublicRead);
第二点就是设置设置文本类型
如果是jpg类型的图片,就应该是image/jpg,这里直接写了一个方法可以直接调用即可
/**
* Description: 判断OSS服务文件上传时文件的contentType
*
* @param FilenameExtension 文件后缀
* @return String
*/
public static String getcontentType(String FilenameExtension) {
if (FilenameExtension.equalsIgnoreCase(".bmp")) {
return "image/bmp";
}
if (FilenameExtension.equalsIgnoreCase(".gif")) {
return "image/gif";
}
if (FilenameExtension.equalsIgnoreCase(".jpeg") ||
FilenameExtension.equalsIgnoreCase(".jpg") ||
FilenameExtension.equalsIgnoreCase(".png")) {
return "image/jpg";
}
if (FilenameExtension.equalsIgnoreCase(".html")) {
return "text/html";
}
if (FilenameExtension.equalsIgnoreCase(".txt")) {
return "text/plain";
}
if (FilenameExtension.equalsIgnoreCase(".vsd")) {
return "application/vnd.visio";
}
if (FilenameExtension.equalsIgnoreCase(".pptx") ||
FilenameExtension.equalsIgnoreCase(".ppt")) {
return "application/vnd.ms-powerpoint";
}
if (FilenameExtension.equalsIgnoreCase(".docx") ||
FilenameExtension.equalsIgnoreCase(".doc")) {
return "application/msword";
}
if (FilenameExtension.equalsIgnoreCase(".xml")) {
return "text/xml";
}
return "image/jpg";
}
设置一下文本类型
//获取上传文件的扩展名,截取扩展名
String fileType = original.substring(original.lastIndexOf("."));
//设置文本类型
objectMetadata.setContentType(getcontentType(fileType));
//默认十年不过期
Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 10);
//获取在线访问的url bucket名称 文件名 过期时间
uploadUrl = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
第三点设置返回值
//返回数据是关键如果你直接返回uploadUrl那么后面就会出现很多参数,所以要进行截取
return uploadUrl.substring(0,uploadUrl.indexOf("?"));