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

网友投稿 374 2023-05-10


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

在javaweb中写了一个图片的链接,可以打开预览,另外提供一个下载功能。

以下是预览代码,没什么好说的;href若连接的是一个压缩包文件之类无法直接打开的就可以直接下载;

预览

关键在于如何在页面上下载这个张图片,于是写了下面的一个jsp用流来读取文件;

下载

<%@ 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();

%>

<%

//得到文件名字和路径

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();

%>

最后查资料发现在HTML5中提供了download属性,只要写了这个属性可以直接下载图片而不是直接打开;可惜只支持h5,不然省事多了

下载

download中为下载文件的文件名。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java使用IO流实现音频的剪切和拼接
下一篇:详解spring boot使用@Retryable来进行重处理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~