java获取网络图片上传到OSS的方法

OSS不支持通过一个网络地址来上传图片,所以若想将网络上的图片上传到OSS上需要走点弯路。

1、通过链接将图片下载到本地的一个文件夹下面

2、用OSS上传该文件夹下的文件

3、上传完成后删除本地的文件

具体代码如下:

 //获取当前项目的绝对路径
 public static String getTomcatPath(){
  String nowpath;
  String tempdir;
  nowpath=System.getProperty("user.dir");
  tempdir=nowpath.replace("bin", ""); //把bin 文件夹变到 webapps文件里面
  return tempdir;
 }
 /**
 * 将图片下载下来后,上传到OSS
 * @param imgLink
 * @param downloadPath
 * @return
 * @throws Exception
 */
 private String downloadImagAndUploadToOss(String imgLink,String downloadPath) throws Exception{
  List<String> urlList=new ArrayList<String>();
  urlList.add(imgLink);
  String imgName=DateUtil.formatDate(new Date(), "yyyyMMddhhmmss")+UuidUtil.createUUID()+".jpg";
  downloadPicture(urlList,downloadPath,imgName);
 String key="carAlbum/"+imgName;
 String imgUrl=OSSObjectAPI.genOssPicUrl(OSSObjectAPI.XI_AN_BUCKET_NAME,OSSObjectAPI.XIAN_ACCESS_ID,OSSObjectAPI.XIAN_ACCESS_KEY,
  "http://oss-cn-zhangjiakou.aliyuncs.com/",downloadPath+imgName,key);
 FileUtil.delete(downloadPath+imgName);
 return imgUrl;
 }
 /**
  * 传入要下载的图片的url列表,将url所对应的图片下载到本地
  * @param urlList
  * @throws Exception
  */
 private void downloadPicture(List<String> urlList,String path,String imgName) throws Exception {
  if(urlList==null||urlList.size()==0){
   return;
  }
  URL url = null;
  FileOutputStream fileOutputStream =null;
  InputStream inputStream =null;
  for (String urlString : urlList) {
   try {
     url = new URL(urlString);
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     connection.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0");
     connection.setConnectTimeout(10 * 1000);
     connection.setReadTimeout(15 * 1000);
     inputStream = connection.getInputStream();
     byte[] buffer = new byte[1024];
     int length;
     fileOutputStream= new FileOutputStream(path+ File.separator+ imgName);
     while ((length = inputStream.read(buffer)) != -1) {
      fileOutputStream.write(buffer, 0, length);
     }
   } catch (Exception e) {
    e.printStackTrace();
   } finally{
    inputStream.close();
    fileOutputStream.flush();
    fileOutputStream.close();
   }
  } 

 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java中使用正则表达式获取网页中所有图片的路径

    /** * 从HTML源码中提取图片路径,最后以一个 String 类型的 List 返回,如果不包含任何图片,则返回一个 size=0 的List * 需要注意的是,此方法只会提取以下格式的图片:.jpg|.bmp|.eps|.gif|.mif|.miff|.png|.tif|.tiff|.svg|.wmf|.jpe|.jpeg|.dib|.ico|.tga|.cut|.pic * @param htmlCode HTML源码 * @return <img>标签 src 属性指向的图片地址的

  • java中ImageReader和BufferedImage获取图片尺寸实例

    ImageReader 对象通常由特定格式的服务提供者接口 (SPI) 类实例化.服务提供者类(例如 ImageReaderSpi 的实例)向 IIORegistry 注册,后者使用前者进行格式识别和表示可用格式 reader 和 writer. BufferedImage子类描述具有可访问图像数据缓冲区的Image.BufferedImage由图像数据的ColorModel和Raster组成.Raster的SampleModel中band的数量和类型必须与ColorModel所要求的数量和类型

  • Java解析word,获取文档中图片位置的方法

    前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术,分别是HWPF(.doc)和XWPF(.docx).如果你对这两个技术熟悉的话,就应该能明白使用java解析word文档的痛楚所在. 其中两个最大的问题在于: 第一是这两个类并没有统一的父类和接口(隔壁的XSSF和HSSF投过来鄙视的眼光),所以没法进行同一格式的接口式编程: 第二是官方API中并

  • Java图片处理之获取gif图一帧图片的两种方法

    前言 本文主要给大家介绍了关于Java获取gif图一帧图片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.Java原生代码实现gif获取一帧图片 先看测试代码: public static void main(String[] args) { /*这儿填写你存放要缩小图片的文件夹全地址*/ String src = "c:/5.gif" ; /*这儿填写你转化后的图片存放的文件夹*/ String tar = "c:/5_frame_2.jp

  • java编程简单获取图片像素的方法

    本文实例讲述了java获取图片像素的方法.分享给大家供大家参考,具体如下: package cn.net.comsys.sso; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.*; public class Test { public static void main(String args[]) { File file = new File("a.bmp"); Buf

  • java获取网络图片上传到OSS的方法

    OSS不支持通过一个网络地址来上传图片,所以若想将网络上的图片上传到OSS上需要走点弯路. 1.通过链接将图片下载到本地的一个文件夹下面 2.用OSS上传该文件夹下的文件 3.上传完成后删除本地的文件 具体代码如下: //获取当前项目的绝对路径 public static String getTomcatPath(){ String nowpath; String tempdir; nowpath=System.getProperty("user.dir"); tempdir=nowp

  • Java实现文件上传和下载的方法详解

    目录 1.文件上传 1.1 介绍 1.2 代码实现 2.下载 2.1 介绍 2.2 代码实现 1.文件上传 1.1 介绍 文件上传,也称为upload,是指将本地图片.视频.音频等文件上传到服务器上,可以供其他用户浏览或下载的过程.文件上传在项目中应用非常广泛,我们经常发微博.发微信朋友圈都用到了文件上传功能. 文件上传时,对页面的form表单有如下要求: 表单属性 取值 说明 method post 必须选择post方式提交 enctype multipart/form-data 采用mult

  • Java实现文件上传至服务器的方法

    在我们的web开发中,很多的时候都需要把本机的一些文件上传到web服务器上面去. 如:一个BBS系统,当用户使用这是系统的时候,能把本机的一些图片,文档上传到服务器上面去.然后其他用户可以去下载这些文件,那么这样的话,我们可以自己编程实现文件的上传 但是更好的方式是使用一些已有的组件帮助我们实现这种上传功能. 常用的上传组件: Apache 的 Commons FileUpload JavaZoom的UploadBean jspSmartUpload upload.jsp 代码: <%@ pag

  • 微信小程序环境下将文件上传到OSS的方法步骤

    步骤 1: 配置 Bucket 跨域 客户端进行表单直传到 OSS 时,会从浏览器向 OSS 发送带有 Origin 的请求消息.OSS 对带有 Origin 头的请求消息会进行跨域规则(CORS)的验证.因此需要为 Bucket 设置跨域规则以支持 Post 方法. 步骤 2:配置外网域名到小程序的上传域名白名单中 通过 OSS 控制台查看外网域名. 登录微信小程序平台,配置小程序的上传域名白名单. 步骤 3:使用 Web 端直传实践方案 Demo 进行上传测试 下载应用服务器代码 修改 De

  • Java实现文件上传的两种方法(uploadify和Spring)

    最近项目中用到的两种文件上传方式做一下总结: 一. uploadify: uploadify控件的scripts和styles在这里:图片上传 JSP: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file="../jsp/include/taglibs.jsp"%> <!DOCTYPE HTML PUBL

  • Java实现文件上传服务器和客户端

    本文实例为大家分享了Java实现文件上传服务器和客户端的具体代码,供大家参考,具体内容如下 文件上传服务器端: /** * 使用TCP协议实现上传功能的服务器端 * 思路: * 新建ServerSocket * 等待客户端连接 * 连接上后开启子线程,把连接获取的Socket传给子线程 * 循环进行 * @author yajun * */ public class UploadServer { public static void main(String[] args) { UploadSer

  • java实现图片上传至本地实例详解

    在工作中要求将图片上传至本地,如下代码将介绍如何将图片上传至本地 准备工作: 环境:eclipse4.5-x64,jdk1.7-x64,maven3 tomcat服务器配置图片上传映射: 上传至本地服务器配置文件:image.properties #\u672c\u5730\u670d\u52a1\u5668\u56fe\u7247\u4fdd\u5b58\u8def\u5f84 IMAGEPATH=/mall/upload/image/ #\u56fe\u7247\u540e\u7f00\u5

  • FasfDFS整合Java实现文件上传下载功能实例详解

    在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti

  • Java使用SFTP上传文件到服务器的简单使用

    最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询.具体代码如下所示: /** * 将文件上传到服务器 * * @param filePath * 文件路径 * @param channelSftp * channelSftp对象 * @return */ public static boolean uploadFile(String filePath, ChannelSftp channelSftp) { OutputStream outstream = null; In

  • java实现动态上传多个文件并解决文件重名问题

    本文分为两大方面进行讲解: 一.java实现动态上传多个文件 二.解决文件重命名问题java 供大家参考,具体内容如下 1.动态上传多个文件 <form name="xx" action="<c:url value='/Up3Servlet'/>" method="post" enctype="multipart/form-data"> <table id="tb" borde

随机推荐