浏览 1397 次
锁定老帖子 主题:java 流传输压缩包
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-07-14
原理:浏览器接收到后台传来的信息首先要解析的是:content-type,,然后处理数据。这里需要设置content-type为application/zip.浏览器接收到这个content-type就会认为它是一个二进制的压缩文件,就会在窗口提示下载,当然这个文件的content-type可以并不一定是zip压缩文件,可以是任何形式的文件,浏览器只解析服务器告诉它的content-type而不会去解析这个文件用来检查服务器是否欺骗它,它对服务器百分百信任,这也是由于http协议决定的,浏览器不可能接受完文件并解析出文件的content-type后再做出反应,它必须提前做出反应。 代码: <pre name="code" class="java"> response.setHeader("Content-disposition", "attachment;filename=test.zip"); URL url = new URL("e://file/test.zip"); BufferedInputStream inputStream = new BufferedInputStream(url.openStream()); BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); byte[] buff = new byte[2048]; int bytesRead; while (-1 != (bytesRead = (inputStream.read(buff,0,buff.length)))) { outputStream.write(buff,0,bytesRead); } if(inputStream != null){ inputStream.close(); } if(outputStream != null){ outputStream.close(); } </pre> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |