图片上传后怎么获取图片的访问路径
我也踩过这个坑( 1 )
图片上传
详细描述
编辑于2024-11-24
-
[上海|荣耀师兄]JAVA-王琦超0
阿里云的存储url是有固定格式的,具体参看下面代码
可以使用工具类直接将其拼接起来作为返回值,
然后直接用String来接就可以了。
比如上传的工具类可以这样写
/**
*
* @MethodName: uploadFile
* @Description: OSS单文件上传
* @param file
* @param fileType 文件后缀,想要存储的类型
* @return String 文件地址
*/
public static String uploadFile(File file, String fileType){
config = config==null?new OSSConfig():config;
//生成随机用户名,尾缀就是输入的想要存储的文件类型
String fileName = config.getPicLocation()+ UUID.randomUUID().toString().toUpperCase().replace("-", "")+"."+fileType; //文件名,根据UUID来
return putObject(file,fileType,fileName);
}/**
*
* @MethodName: putObject
* @Description: 上传文件
* @param file
* @param fileType
* @param fileName
* @return String
*/
private static String putObject(File file, String fileType, String fileName){
config = config==null?new OSSConfig():config;
String url = null; //默认null
OSSClient ossClient = null;
try {
ossClient = new OSSClient(config.getEndpoint(), config.getAccessKeyId(), config.getAccessKeySecret());
InputStream input = new FileInputStream(file);
ObjectMetadata meta = new ObjectMetadata(); // 创建上传Object的Metadata
meta.setContentType(OSSUploadUtil.contentType(fileType)); // 设置上传内容类型
meta.setCacheControl("no-cache"); // 被下载时网页的缓存行为
PutObjectRequest request = new PutObjectRequest(config.getBucketName(), fileName,input,meta); //创建上传请求
ossClient.putObject(request);
url = config.getEndpoint().replaceFirst("http://","http://"+config.getBucketName()+".")+"/"+fileName; //上传成功再返回的文件路径
} catch (OSSException oe) {
oe.printStackTrace();
return null;
} catch (ClientException ce) {
ce.printStackTrace();
return null;
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
} finally {
ossClient.shutdown();
}
return url;
}编辑于2018-05-30
- 去第 页