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

发布时间 - 2026-01-11 01:41:13    点击率:

在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  # 图片下载  # Java+MySql图片数据保存与读取的具体实例  # Java从网络读取图片并保存至本地实例  # java 后台将base64字符串保存为图片的方法  # Java实现用Mysql存取图片操作实例  # java根据网络地址保存图片的方法  # java实现文件上传下载和图片压缩代码示例  # Java如何从服务器中下载图片  # java实现简单图片上传下载功能  # java压缩文件和下载图片示例  # java+MongoDB实现存图片、下载图片的方法示例  # 写了  # 给大家  # 的是  # 希望能  # 可以直接  # 这篇  # 提供一个  # 压缩包  # 小编  # 关键在于  # 大家多多  # 中为  # 就可以  # 下载图片  # 而不是  # 没什么  # 如何在  # charset  # pageEncoding  # import 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何撰写建站申请书?关键要点有哪些?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  浅谈javascript alert和confirm的美化  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  如何用虚拟主机快速搭建网站?详细步骤解析  香港服务器网站卡顿?如何解决网络延迟与负载问题?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何确认建站备案号应放置的具体位置?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何选择可靠的免备案建站服务器?  简历在线制作网站免费版,如何创建个人简历?  如何在景安云服务器上绑定域名并配置虚拟主机?  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel如何使用Eloquent进行子查询  Laravel如何配置Horizon来管理队列?(安装和使用)  ,怎么在广州志愿者网站注册?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  JS中对数组元素进行增删改移的方法总结  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  如何用IIS7快速搭建并优化网站站点?  Java类加载基本过程详细介绍  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何快速选择适合个人网站的云服务器配置?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  如何基于PHP生成高效IDC网络公司建站源码?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何用wdcp快速搭建高效网站?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel Session怎么存储_Laravel Session驱动配置详解  python中快速进行多个字符替换的方法小结  Laravel如何记录自定义日志?(Log频道配置)  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  java中使用zxing批量生成二维码立牌  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  javascript读取文本节点方法小结  ,南京靠谱的征婚网站?  如何在香港免费服务器上快速搭建网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)