通过Java 下载网络资源
1、通过url获取网络资源文件流
2、将文件流写入字节数组
3、将字节数组输出到客户端浏览器
4、这种方式文件名及扩展名根据URL自行定义
5、适用于图片 .xml .txt 等浏览器可直接解析的资源下载,其他资源可以直接根据URL进行下载
6、http client 下载方式
/** * 图片另存为 * @param request * @param response */ @RequestMapping("img_download") public void downloadHouseImg(HttpServletRequest request,HttpServletResponse resp){ String url = request.getParameter("img_url"); //获取网络图片 InputStream content = null; //创建零时文件 String timstamp = String.valueOf(System.currentTimeMillis()); HttpClient httpclient = new DefaultHttpClient(); Long contentLength = 0L; String[] fileName = url.substring(url.lastIndexOf("/") + 1).split("\\."); try{ HttpGet httpget = new HttpGet(url); HttpResponse response = httpclient.execute(httpget); if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ HttpEntity entity = response.getEntity(); content = entity.getContent(); contentLength = entity.getContentLength(); } byte[] buffer = new byte[contentLength.intValue()]; content.read(buffer); // 清空response resp.reset(); // 设置response的Header resp.addHeader("Content-Disposition", "attachment;filename=" + fileName[0]+fileName[1]); resp.addHeader("Content-Length", "" + buffer.length); resp.setContentType("application/octet-stream"); OutputStream toClient = new BufferedOutputStream(resp.getOutputStream()); toClient.write(buffer); toClient.flush(); toClient.close(); }catch(Exception e){ e.printStackTrace(); }finally{ httpclient.getConnectionManager().shutdown(); } }
7、进过测试 httpclient下载方式,图片会平凡出现不完整问题 提供以下流下载方法
public void downloadHouseImg(HttpServletRequest request,HttpServletResponse resp){ String url = request.getParameter("img_url"); String[] fileName = url.substring(url.lastIndexOf("/") + 1).split("\\."); //获取网络图片 InputStream content = null; String timstamp = String.valueOf(System.currentTimeMillis()); HttpClient httpclient = new DefaultHttpClient(); Long contentLength = 0L; try{ URL img = new URL(url); InputStream imgis = img.openStream(); resp.reset(); if(fileName != null && fileName.length >= 2){ resp.addHeader("Content-Disposition", "attachment;filename=" + fileName[0] + "." + fileName[1]); }else{ resp.addHeader("Content-Disposition", "attachment;filename=" + timstamp+".png"); } resp.setContentType("application/octet-stream"); OutputStream ots = resp.getOutputStream(); int size = 0; byte[] buffer = new byte[8192]; while((size = imgis.read(buffer)) != -1){ ots.write(buffer,0,size); } ots.flush(); ots.close(); imgis.close(); }catch(Exception e){ e.printStackTrace(); }finally{ httpclient.getConnectionManager().shutdown(); } }
相关推荐
JAVA网络下载程序 JAVA网络下载程序 JAVA网络下载程序 JAVA网络下载程序
Java多线程下载网络资源,已打成可执行jar包,下载时只需修改相应配置文件即可
Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络...
Java课程网络资源的建设与探索,论述了建设面向计算机专业及其他专业的JAVA课程网络资源的建设和探索思想。
Java抓取网络资源并插入数据库(附详细代码) 如有不懂处可加qq412546724
java与服务器交互数据,urlconnection用法。
这个是关于Java多线程方面的技术,就是多个线程发送请求,从互联网上下载图片资源,通过这个案例可以知道Java中的多线程的基础知识
Java网络资源介绍ppt,sun中国技术社区,Java的官方网站和综合信息网站介绍
它是采用网络通信技术和应用协议,实现机载、陆地和舰载战术数据系统之间的数据信息交换,从而最大限度地发挥战术系统效能的系统。它由系统设施、通信规程和应用协议组成。而数据通信系统技术实质上就是一整套通信...
简单的网络下载器,仅支持http资源下载.
Java Socket网络编程.pdf 学习资料 复习资料 教学资源
Java 不依赖平台的特点使得它受到广泛的关注,Java 已成为网络时代最重要的语言之一。 Java 语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。目前,很多新的技术领域都...
阐述了如何在Java中,利用 HTML文档之间的链接关系,使用 Java内置的线程机制、网络通讯库和 Swing HTML解析 器实现基 于Web的图片批量下载。对Web上一些其它资源的批量下栽 。也可采用想类似的方法实现。在面向网络...
详细介绍了基于JAVA的网络编程,适合初学者使用,是一个比较基础的资料。
Java坦克大战网络对战版源代码.rar Java声音播放程序源代码.rar JAVA实现CLDC与MIDP底层编程的代码.rar Java实现HTTP连接与浏览,Java源码下载.rar Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果附有...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
通过JAVA语言实现使用URL访问网络资源,
《Java网络编程实例:Java网络编程实例》一书的光盘资源,包括各章的源代码实例,需要学习的朋友看看
很不错的java网络编程的视频教程,十分详细地介绍了java网络编程中的各个知识点
手机版word(java程序,网络资源)