java根據圖片路徑下載到服務器方案 (轉)


http://www.cnblogs.com/thinkingandworkinghard/articles/5589484.html

 

  平常做的工作中,有一部分是同步數據的。但是同步的過程中碰到個問題,是這樣子的:我們的數據是從公司另一個部門的服務器上同步過來的,里面有圖片,但是只有圖片的路徑。這樣我們每次讀取圖片的時候,讀取的是他們的服務器的圖片,一旦他們的服務器出現問題,我們這邊就會讀取不到。同事提出了這個問題,並讓我根據他們的圖片地址在同步數據的時候,把圖片也下載到我們的服務器上,這樣讀取的時候讀取成我們自己的服務器上,於是上網先搜了下怎么根據圖片路徑保存到本地:參考http://takeme.iteye.com/blog/1683380

 

 

復制代碼
import java.io.File;  
2.import java.io.FileOutputStream;  
3.import java.io.InputStream;  
4.import java.io.OutputStream;  
5.import java.net.URL;  
6.import java.net.URLConnection;  
7.  
8.  
9.public class DownloadImage {  
10.  
11.    /** 
12.     * @param args 
13.     * @throws Exception  
14.     */  
15.    public static void main(String[] args) throws Exception {  
16.        // TODO Auto-generated method stub  
17.         download("http://ui.51bi.com/opt/siteimg/images/fanbei0923/Mid_07.jpg", "51bi.gif","c:\\image\\");  
18.    }  
19.      
20.    public static void download(String urlString, String filename,String savePath) throws Exception {  
21.        // 構造URL  
22.        URL url = new URL(urlString);  
23.        // 打開連接  
24.        URLConnection con = url.openConnection();  
25.        //設置請求超時為5s  
26.        con.setConnectTimeout(5*1000);  
27.        // 輸入流  
28.        InputStream is = con.getInputStream();  
29.      
30.        // 1K的數據緩沖  
31.        byte[] bs = new byte[1024];  
32.        // 讀取到的數據長度  
33.        int len;  
34.        // 輸出的文件流  
35.       File sf=new File(savePath);  
36.       if(!sf.exists()){  
37.           sf.mkdirs();  
38.       }  
39.       OutputStream os = new FileOutputStream(sf.getPath()+"\\"+filename);  
40.        // 開始讀取  
41.        while ((len = is.read(bs)) != -1) {  
42.          os.write(bs, 0, len);  
43.        }  
44.        // 完畢,關閉所有鏈接  
45.        os.close();  
46.        is.close();  
47.    }   
48.  
49.}  
復制代碼
 

 

這樣子確實可以下載到本地,為了防止跨平台,需要把里面的"\\"或者"/"換成 File.separtor,原來我是想把同步工程的圖片路徑放在tomcat的跟目錄下System.getProperty("user.dir"),但是同事提醒了下,說同步的項目不再tomcat里面,這樣圖片上傳的路徑沒辦法放到tomcat的共享目錄了。最后再一想,既然這樣,還不如讓運營人員手工上傳或者在另外一個項目里面給添加一個 功能,這樣也不用我再同步的項目里面來寫了。注意這樣定了,明天去公司實現吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM