JAVA获取一个图片路径后,下载该图片再重新上传至指定路径中

需求如题。

代码如下

  //filePath格式为““src='文件路径'””
  public void Test(String filePath){


     String filePath = GetHtmlImageSrcList(custom.getDescription()).get(0);//将文件路径通过正则表达式转换为http://XXX/XX的形式

    URL url = new URL(filePath);
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();
     connection.setConnectTimeout(30000);
     connection.setReadTimeout(30000);
     connection.connect();

     String fileName = filePath.substring(filePath.lastIndexOf("."));
     String photoUrl =
       OSSClientUtil.uploadFile2OSS(connection.getInputStream(),
           "scene/" + dateTimeSSSFormat.format(new Date()) + fileName);//框架已存在的文件上传方法,在此不赘述
  }

    /**
     * 获取IMG标签的SRC地址
     */
    public static List<String> GetHtmlImageSrcList(String htmlText) {
        List<String> imgSrc = new ArrayList<String>();
        Matcher m = Pattern.compile("src="?(.*?)("|>|\s+)").matcher(htmlText);
        while (m.find()) {
            imgSrc.add(m.group(1));
        }

        return imgSrc;
    }

1、其中

//URL aURL = new URL(“http://www.mycompany.com:8080/index.html”);

我们创建了一个使用完整URL的URL class,其中明确指出了使用的协议是http,主机名称是www.mycompany.com,端口号码为8080,文件/资源为 index.html。如果组成URL的语法发生了错误,那么构造器就会发出MalformedURLException。

openConnection并不需要参数,并且在操作成功之后,它会返回一个URLConnection class的实例。
后续还有对URL内容的读写操作,可参考https://www.cnblogs.com/blackiesong/p/6182038.html中的解释。


2、GetHtmlImageSrcList方法中用到了Pattern和Matcher两个类,这两个都在java提供的java.util.regex类工具包中。
详细内容参考http://www.cnblogs.com/ggjucheng/p/3423731.html中的解释。



3、正则表达式:可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
语法参考http://www.runoob.com/regexp/regexp-syntax.html。
https://baijiahao.baidu.com/s?id=1588848792548192879&wfr=spider&for=pc