当前位置: 移动技术网 > IT编程>开发语言>Java > javaweb页面附件、图片下载及打开(实现方法)

javaweb页面附件、图片下载及打开(实现方法)

2019年07月22日  | 移动技术网IT编程  | 我要评论

在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页面附件、图片下载及打开(实现方法)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网