美文网首页
使用Java通过URL下载图片到本地

使用Java通过URL下载图片到本地

作者: Slience无言 | 来源:发表于2017-03-02 10:36 被阅读0次

    转载自http://www.open-open.com/lib/view/open1329995970842.html

    需求,公司项目接入融云,对于聊天中上传的图片融云会自动上传到七牛,但是只保留一个月,如果需要将图片长久的保留下来就需要自行下载图片了,前端同事说它可以给我那张图片的URL,类似于这种样子的

    http://rongcloud-image.ronghub.com/image_jpeg__RC-2017-03-01_946_1488362231609?e=2147483647&token=EcrrKW5AbOMQaDRwc3ReDNvo3-sL_SO1fSUBKV3H:0VT5Cx7suD6uKNcuqVGsa84mq1M=
    

    实现代码

        public static String uploadQianURL(String fileUrl) {
            //获取文件名,文件名实际上在URL中可以找到
            String fileName = fileUrl.substring(fileUrl.lastIndexOf("/"), fileUrl.indexOf("?")) + ".jpg";
            //这里服务器上要将此图保存的路径
            String savePath = getRequest().getRealPath(UPLOAD_PATH);
            try {
                URL url = new URL(fileUrl);/*将网络资源地址传给,即赋值给url*/
                /*此为联系获得网络资源的固定格式用法,以便后面的in变量获得url截取网络资源的输入流*/
                HttpURLConnection connection = (HttpURLConnection)url.openConnection();
                DataInputStream in = new DataInputStream(connection.getInputStream());
                /*此处也可用BufferedInputStream与BufferedOutputStream*/
                DataOutputStream out = new DataOutputStream(new FileOutputStream(savePath+fileName));
                /*将参数savePath,即将截取的图片的存储在本地地址赋值给out输出流所指定的地址*/
                byte[] buffer = new byte[4096];
                int count = 0;
                /*将输入流以字节的形式读取并写入buffer中*/
                while ((count = in.read(buffer)) > 0) {
                    out.write(buffer, 0, count);
                }
                out.close();/*后面三行为关闭输入输出流以及网络资源的固定格式*/
                in.close();
                connection.disconnect();
                //返回内容是保存后的完整的URL
                return PATH+UPLOAD_PATH+fileName;/*网络资源截取并存储本地成功返回true*/
    
            } catch (Exception e) {
                System.out.println(e + fileUrl + savePath);
                return null;
            }
        }
    

    如果URL路径是.jpg或者.png结尾的只需要在fileName那修改就好

    相关文章

      网友评论

          本文标题:使用Java通过URL下载图片到本地

          本文链接:https://www.haomeiwen.com/subject/qpgwbttx.html