JAVA獲取一個圖片路徑後,下載該圖片再重新上傳至指定路徑中
阿新 • • 發佈:2019-01-15
地址 tps spa spider sce scl 形式 connect enc
需求如題。
代碼如下
//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
JAVA獲取一個圖片路徑後,下載該圖片再重新上傳至指定路徑中