1. 程式人生 > >java讀取網頁圖片路徑並下載到本地

java讀取網頁圖片路徑並下載到本地

mage -h form read file cti 連接 公司 date()

java讀取網頁圖片路徑並下載到本地

最近公司需要爬取一些網頁上的數據,自己就簡單的寫了一個demo,其中有一些數據是圖片,需要下載下來到本地並且

將圖片的路徑保存到數據庫,示例代碼如下:

package com.cellstrain.icell.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;


public class DownloadImage {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
download("https://www.mybiosource.com/images/tds/protocol_images/1000000-6999999/MBS2031060_SDS.jpg","E:\\upload\\SDSPage");
}

public static String download(String urlPath,String savePath) throws Exception {
// 構造URL
URL url = new URL(urlPath);
// 打開連接
URLConnection con = url.openConnection();
//設置請求超時為5s
con.setConnectTimeout(5*1000);
// 輸入流
InputStream is = con.getInputStream();
// 1K的數據緩沖
byte[] bs = new byte[1024];
// 讀取到的數據長度
int len;
// 輸出的文件流
File sf=new File(savePath);
if(!sf.exists()){
sf.mkdirs();
}
int randomNo=(int)(Math.random()*1000000);
String filename=urlPath.substring(urlPath.lastIndexOf("/")+1,urlPath.length());//獲取服務器上圖片的名稱
filename=new java.text.SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())+randomNo+filename;//時間+隨機數防止重復
OutputStream os = new FileOutputStream(sf.getPath()+"\\"+filename);
String virtualPath="/upload/SDSPage/"+filename;//存入數據庫的虛擬路徑
// 開始讀取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
// 完畢,關閉所有鏈接
os.close();
is.close();
return virtualPath;
}

}
在E盤的upload文件下的SDSPage文件夾下就可以看到下載好的圖片,將路徑存到數據庫後直接用el表達式就可以顯示圖片了,前提
是tomcat得配置好虛擬路徑哦,如果不清楚怎麽配置虛擬路徑的可以查看http://www.cnblogs.com/qianzf/p/6781143.html

java讀取網頁圖片路徑並下載到本地