zoukankan      html  css  js  c++  java
  • 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的共享目录了。最后再一想,既然这样,还不如让运营人员手工上传或者在另外一个项目里面给添加一个 功能,这样也不用我再同步的项目里面来写了。注意这样定了,明天去公司实现吧。

  • 相关阅读:
    前端神器avalonJS入门(一)
    emmet的使用
    VS2015中SharedProject与可移植类库(PCL)项目
    Map工具系列-08-map控件查看器
    Map工具系列-07-TFS变更集提取工具
    Map工具系列-06-销售营改增历史数据处理工具
    2018.04.02 matplotlib 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签
    2018.03.30 abap屏幕标签保存之前执行过的状态
    2018.03.29 python-matplotlib 图表生成
    2018.03.29 python-pandas 数据读取
  • 原文地址:https://www.cnblogs.com/quietwalk/p/6517729.html
Copyright © 2011-2022 走看看