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>
最后查資料發(fā)現在HTML5中提供了download屬性,只要寫了這個屬性可以直接下載圖片而不是直接打開;可惜只支持h5,不然省事多了
<a target="_blank" download="aa" href="img/XD201607000023.gif" rel="external nofollow" rel="external nofollow" download="aa" >下載</a>
download中為下載文件的文件名。
以上這篇javaweb頁面附件、圖片下載及打開(實現方法)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring Boot 整合單機websocket的步驟 附github源碼
websocket 是一個通信協議,通過單個 TCP 連接提供全雙工通信,這篇文章主要介紹了Spring Boot 整合單機websocket的步驟(附github源碼),需要的朋友可以參考下2021-10-10
解決springboot利用ConfigurationProperties注解配置數據源無法讀取配置信息問題
今天在學習springboot利用ConfigurationProperties注解配置數據源的使用遇到一個問題無法讀取配置信息,發(fā)現全部為null,糾結是哪里出了問題呢,今天一番思考,問題根源找到,下面把我的解決方案分享到腳本之家平臺,感興趣的朋友一起看看吧2021-05-05
Spring Boot企業(yè)常用的starter示例詳解
這篇文章主要給大家介紹了關于Spring Boot企業(yè)常用starter的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-12-12

