欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-19 18:21:10
在javaweb中写了一个图片的链接,可以打开预览,另外提供一个下载功能。 以下是预览代码,没什么好说的;href若连接的是一个压缩包文件之类无法直接打开的就可以直接下载...

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

上一篇:

下一篇: