上传图片到阿里云服务器
VIEW CONTENTS

上传图片到阿里云服务器

1970-1-1 08:00| 发布者: xtyly| 查看: 297| 评论: 0|来自: 网络
版权声明:kanghu

1.引入两个jar包

<dependency>
     <groupId>com.aliyun.oss</groupId>
     <artifactId>aliyun-sdk-oss</artifactId>
     <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
<version>0.4.8</version>

</dependency>

2.htmly页面

        <form action="/test/toUpload" method="post" enctype="multipart/form-data">
                <input type="file" name="file"> <input type="submit" value="提交">

        </form>

3.Controller

@RequestMapping(value = "/toUpload")
public String toUpload(HttpServletRequest request,MultipartFile file) {

    String fileName=file.getOriginalFilename();
    String imgName = createFileName(FileUtils.getFileFexName(fileName));
    try {
         InputStream inputStream = file.getInputStream();
         String savePath = FileUtils.saveAndUploadImage(inputStream, OSSClient, imgName);
        String imgUrl = ossConfig.getDownloadEndpoint() + "/" + savePath;
        return imgUrl;
    } catch (IOException e) {
   // TODO Auto-generated catch block
       e.printStackTrace();
    }

   return null;

}

 

/**
* 生产文件名 时间+8位的随机串

* @param suffix
*            后缀名
* @return
*/
public String createFileName(String suffix) {
      StringBuilder fileName = new StringBuilder();
      fileName.append(System.currentTimeMillis());
      fileName.append(MsgUtils.generateNoncestr(8));
      fileName.append(ImgTypeEnums.DEFAULT.getCode());
      fileName.append(".").append(suffix);
      return fileName.toString();
}

 

3.

public static String saveAndUploadImage(InputStream inputStream, OSSClientUtils OSSClient,
String imgName) throws IOException {
     try {
          //拼接oss服务路径hr_image/banner/
         String aliPath = BANNER_PATH_PREFIX;

          //将输入流转换图片字符流
        BufferedImage oldImage = ImageIO.read(inputStream);
        int width = oldImage.getWidth();//图片宽
       int height = oldImage.getHeight();//图片高

       //创建文件/tmp/house_image/
       File fullImg = FileUtils.createFile(new File(SAVE_PATH + imgName));


      //图片存储本地
     Thumbnails.of(oldImage).size(width, height).toFile(fullImg);
    try {
            //上传阿里oss
           OSSClient.upload(fullImg, aliPath + imgName);
          //删除本地图片
          fullImg.delete();
    } catch (Exception e) {
   logger.error("保存图片出错");
}

return aliPath + imgName;
} catch (IOException e) {
logger.error("保存图片出错");
throw e;
}


}


路过

雷人

握手

鲜花

鸡蛋
腾讯云服务器优惠

最新评论




在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )