首頁  >  文章  >  Java  >  javaweb頁面附件、圖片下載及開啟的實作方法詳解

javaweb頁面附件、圖片下載及開啟的實作方法詳解

黄舟
黄舟原創
2017-06-04 09:26:321742瀏覽

下面小編就為大家帶來一篇javaweb頁面附件、圖片下載及開啟(實作方法)。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

在javaweb中寫了一個圖片的鏈接,可以打開預覽,另外提供一個下載功能。

以下是預覽程式碼,沒什麼好說的;href若連接的是一個壓縮套件檔案之類無法直接開啟的就可以直接下載;

<a target="_blank" class="media" href="img/XD201607000023.gif" rel="external nofollow" rel="external nofollow" >预览</a>

關鍵在於如何在頁面上下載這個張圖片,於是寫了下面的一個jsp用流來讀取檔案

<a target="_blank" href="downloadFile.jsp?path=img/&pdfName=aa.gif" rel="external nofollow" >下载</a>
<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<%@ page language="java" import="java.io.*;" %>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
  String classPath = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))).replaceAll("file:/", "").replaceAll("%20", " ").trim();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<%  
//得到文件名字和路径  
String filepath = request.getParameter("path");
String filename = request.getParameter("pdfName");

//设置响应头和下载保存的文件名  
response.setContentType("APPLICATION/OCTET-STREAM");  
response.setHeader("Content-Disposition", "attachment;  filename=\""  +  filename  +  "\"");  

//打开指定文件的流信息  
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream(filepath+filename);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
  outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;
out.clear();
out = pageContext.pushBody();
%> 
</head>
<body>
</body>
</html>

最後查資料發現在HTML5中提供了download屬性,只要寫了這個屬性可以直接下載圖片而不是直接打開;可惜只支援h5,不然省事多了

<a target="_blank" download="aa" href="img/XD201607000023.gif" rel="external nofollow" rel="external nofollow" download="aa" >下载</a>

download中為下載檔的檔名。


以上是javaweb頁面附件、圖片下載及開啟的實作方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn