根据URL下载图片至客户端、服务器的简单实例

网友投稿 293 2023-06-25


根据URL下载图片至客户端、服务器的简单实例

1、保存至服务器

根据路径保存至项目所在服务器上。

String imgUrl="";//图片地址

try {

// 构造URL

URL url = new URL(imgUrl);

// 打开连接

URLConnection con = url.openConnection();

// 输入流

InputStream is = con.getInputStream();

// 1K的数据缓冲

byte[] bs = new byte[1QzVmfFLW024];

// 读取到的数据长度

int len;

// 输出的文件流

OutputStream os = new FileOutputStream("c:\\image.jpg");//保存路径

// 开始读取

while ((len = is.read(bs)) != -1) {

os.write(bs, 0, len);

}

// 完毕,关闭所有链接

os.close();

is.close();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

2、保存至本地

以浏览器下载的方式保存至本地。

String imgUrl="";//URL地址

String fileName = imgUrl.substring(imgUrl.lastIndexOf('/') + 1);

BufferedInputStream is = null;

BufferedOutputStream os = null;

try {

URL url = new URL(imgUrl);

this.getServletResponse().setContentType("application/x-msdownload;");

this.getServletResponse().setHeader("Content-disposition", "attachment; filhttp://ename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1"));

this.getServletResponse().setHeader("Content-Length", String.valueOf(url.openConnection().getContentLength()));

is = new BufferedInputStream(url.openStream());

os = new BufferedOutputStream(this.getServletResponse().getOutputStream());

byte[] buff = new byte[2048];

int bytesRead;

while (-1 != (bytesRead = is.read(buff, 0, buff.length))) {

os.write(buff, 0, bytesRead);

}

if (is != null)

is.close();

if (os != null)

os.close();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:教大家轻松制作Bootstrap漂亮表格(table)
下一篇:java中double类型运算结果异常的解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~