当前位置: 首页 > 编程笔记 >

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

奚高扬
2023-03-14
本文向大家介绍javaweb页面附件、图片下载及打开(实现方法),包括了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页面附件、图片下载及打开(实现方法)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍JavaWeb实现多文件上传及zip打包下载,包括了JavaWeb实现多文件上传及zip打包下载的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了javaweb多文件上传及zip打包下载的具体代码,供大家参考,具体内容如下 项目中经常会使用到文件上传及下载的功能。本篇文章总结场景在JavaWeb环境下,多文件上传及批量打包下载功能,包括前台及后台部分。 首先明确一点: 无

  • 本文向大家介绍php实现改变图片直接打开为下载的方法,包括了php实现改变图片直接打开为下载的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现改变图片直接打开为下载的方法。分享给大家供大家参考。具体如下: process.php文件如下: html文件如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍Android编程实现手绘及保存为图片的方法(附demo源码下载),包括了Android编程实现手绘及保存为图片的方法(附demo源码下载)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程实现手绘及保存为图片的方法。分享给大家供大家参考,具体如下: 运行效果图预览: 应 yzuo_08 要求做了此Demo,跟以前那个手写板Demo不同的是可以将画布的内容保存

  • 本文向大家介绍asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载),包括了asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了asp.net+jquery.form实现图片异步上传的方法。分享给大家供大家参考,具体如下: 首先我们需要做准备工作: jq

  • 本文向大家介绍js实现网页图片延时加载 提升网页打开速度,包括了js实现网页图片延时加载 提升网页打开速度的使用技巧和注意事项,需要的朋友参考一下 提升网页加载速度的方法有很多种,用 jquery.lazyload.js 实现图片异步延迟加载,对于页面包含图片较多的网站来说,会是个不错的提升网页打开速度的方法。代码君网站栏目页列表左侧,在PC端预览时能看到一个文章略缩图展示模块,一定程度上会延长网

  • 本文向大家介绍Python实现豆瓣图片下载的方法,包括了Python实现豆瓣图片下载的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现豆瓣图片下载的方法。分享给大家供大家参考。具体分析如下: 1 用 tk 封装一下 2 用户可以自己输入图片url 希望本文所述对大家的Python程序设计有所帮助。