【图片上传后怎么获取图片的访问路径 _图片上传 】 | IT修真院·坑乎
图片上传后怎么获取图片的访问路径
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(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