浏览器文件下载和图片显示(流形式)

浏览器文件下载:如果你想在浏览器中实现下载功能–一些原本不默认下载的文件,如:jpg、xml等。

图片显示(流形式):如果你想在浏览器中显示图片,而图片不是一个静态文件(没有url地址)

那我们应该怎么做呢?

分析:

浏览器获得文件是通过http协议的,香港服务器,

所以只要我设置好请求(request)返回的响应(response)的一些信息应该就行了,

那就是设置响应(response)头的一些信息喽。

解决:

浏览器文件下载设置:

Content-Type:application/octet-stream          // 未分类的二进制数据

Content-Disposition:attachment;filename=yourFileName //附件形式处理,文件名为yourFileName

Content-Length:yourFile.length              //文件的大小

而文件以流形式输出为浏览器就行了。

这样浏览器就能识别该文件是通过附件的形式下载的了。

java的servlet代码:

public HttpServletResponse getFile(String path,HttpServletRequest request, HttpServletResponse response) {try {File file = new File(request.getRealPath(“/”)+”/”+path);String filename = file.getName();InputStream fis = new BufferedInputStream(new FileInputStream(file));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();response.reset();// 设置response的Headerresponse.addHeader(“Content-Disposition”, “attachment;filename=” + new String(filename.getBytes(“utf-8″),”ISO-8859-1”));response.addHeader(“Content-Length”, “” + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType(“application/octet-stream”);toClient.write(buffer);toClient.flush();toClient.close();} catch (IOException ex) {ex.printStackTrace();}return response;},美国服务器,香港服务器劝君更尽一杯酒,西出阳关无故人。

浏览器文件下载和图片显示(流形式)

相关文章:

你感兴趣的文章:

标签云: