根据URL下载图片至客户端服务器实例
Posted 技术宅de小坑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据URL下载图片至客户端服务器实例相关的知识,希望对你有一定的参考价值。
1、保存至服务器
根据路径保存至项目所在服务器上。
1 String imgUrl="";//图片地址 2 try { 3 // 构造URL 4 URL url = new URL(imgUrl); 5 // 打开连接 6 URLConnection con = url.openConnection(); 7 // 输入流 8 InputStream is = con.getInputStream(); 9 // 1K的数据缓冲 10 byte[] bs = new byte[1024]; 11 // 读取到的数据长度 12 int len; 13 // 输出的文件流 14 OutputStream os = new FileOutputStream("c:\\image.jpg");//保存路径 15 // 开始读取 16 while ((len = is.read(bs)) != -1) { 17 os.write(bs, 0, len); 18 } 19 // 完毕,关闭所有链接 20 os.close(); 21 is.close(); 22 } catch (MalformedURLException e) { 23 e.printStackTrace(); 24 } catch (FileNotFoundException e) { 25 e.printStackTrace(); 26 } catch (IOException e) { 27 e.printStackTrace(); 28 }
2、保存至本地
以浏览器下载的方式保存至本地。
1 String imgUrl="";//URL地址 2 String fileName = imgUrl.substring(imgUrl.lastIndexOf(‘/‘) + 1); 3 BufferedInputStream is = null; 4 BufferedOutputStream os = null; 5 try { 6 URL url = new URL(imgUrl); 7 this.getServletResponse().setContentType("application/x-msdownload;"); 8 this.getServletResponse().setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1")); 9 this.getServletResponse().setHeader("Content-Length", String.valueOf(url.openConnection().getContentLength())); 10 is = new BufferedInputStream(url.openStream()); 11 os = new BufferedOutputStream(this.getServletResponse().getOutputStream()); 12 byte[] buff = new byte[2048]; 13 int bytesRead; 14 while (-1 != (bytesRead = is.read(buff, 0, buff.length))) { 15 os.write(buff, 0, bytesRead); 16 } 17 if (is != null) 18 is.close(); 19 if (os != null) 20 os.close(); 21 } catch (MalformedURLException e) { 22 e.printStackTrace(); 23 } catch (UnsupportedEncodingException e) { 24 e.printStackTrace(); 25 } catch (IOException e) { 26 e.printStackTrace(); 27 }
以上是关于根据URL下载图片至客户端服务器实例的主要内容,如果未能解决你的问题,请参考以下文章
windows客户端开发--根据可下载url另存为文件(微信windows客户端这样做的)
IOS开发-UI学习-根据URL显示图片,下载图片的练习(button,textfield,image view,url,data)