各种文件的预览下载(docx,pdf,txt,图片)

一、word

1、word的预览可以用onlyoffice

2、word的预览下载

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><div onclick="FilehandleClick()">word文件</div></body><script>function FilehandleClick(){window.location.href = "word文件线上链接地址"let downloadElement = document.createElement("a");let href = window.URL.createObjectURL(blob);downloadElement.href = href;downloadElement.download = name;document.body.appendChild(downloadElement);downloadElement.click();document.body.removeChild(downloadElement);window.URL.revokeObjectURL(href);}</script>
</html>

二、pdf

1、pdf预览:跳转新页面预览

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><div onclick="FilehandleClick()">pdf文件</div></body><script>//预览,新开一页async function FilehandleClick() {let url = 'pdf线上链接地址.pdf'const response = await fetch(url)// 使用 fetch 函数获取 url 对应资源的响应const blob = await response.blob()//使用 response.blob() 方法将响应转换为一个 Blob 对象const blobUrl = URL.createObjectURL(blob)//使用 URL.createObjectURL(blob) 方法创建一个指向 Blob 对象的URL window.open(blobUrl, '_blank')}</script>
</html>

2、pdf下载:引入外部插件

  • 引入插件

<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script>
  •  button

<button onclick="downloadPDF('pdf线上链接地址.pdf', '下载后的pdf名字.pdf')">下载PDF</button>
  • function
function downloadPDF(url, filename) {fetch(url).then(response => response.blob()).then(blob => {saveAs(blob, filename);}).catch(error => console.error('Error downloading PDF:', error));
}
  •  全部代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>PDF Viewer</title><script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script></head><body><button onclick="downloadPDF('pdf线上链接地址.pdf', '下载文件名称.pdf')">下载PDF</button><script>function downloadPDF(url, filename) {fetch(url).then(response => response.blob()).then(blob => {saveAs(blob, filename);}).catch(error => console.error('Error downloading PDF:', error));}</script></body>
</html>

3、pdf直接下载

注意:这个下载可能会出现文件损坏,无法打开的问题

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>PDF下载</title></head><body><buttononclick="downloadPDF('pdf线上链接地址.pdf', '下载文件名称.pdf')">下载PDF</button><script>function downloadPDF(val1, val2) {blob = new Blob([val1], {type: "application/pdf",});name = val2var downloadElement = document.createElement("a");var href = window.URL.createObjectURL(blob);downloadElement.href = href;downloadElement.download = name;document.body.appendChild(downloadElement);downloadElement.click();document.body.removeChild(downloadElement);window.URL.revokeObjectURL(href);}</script></body>
</html>

三、txt

1、txt的预览:跳转新页面预览

注意:直接用a标签,可以跳转预览,但是会出现乱码的问题

<a  href="线上链接地址.txt" target="_blank">txt文件地址</a>

 2、txt的下载

  • 引入jquery

<script src="https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js"></script>
  •  button

<button onclick="downloadTxt('线上链接.txt', '下载文件名称.txt')">下载txt</button>
  •  js

function downloadTxt(content, fileName) {$.ajax({url: content,success: function(data, status) {download(`${fileName}.txt`, data)},error: function(data, status) {// console.log('log err',arguments)}});
}function download(filename, text) {var pom = document.createElement("a");pom.setAttribute("href","data:text/plain;charset=utf-8," + encodeURIComponent(text));pom.setAttribute("download", filename);if (document.createEvent) {var event = document.createEvent("MouseEvents");event.initEvent("click", true, true);pom.dispatchEvent(event);} else {pom.click();}}
  •  全部代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>txt下载</title><script src="https://cdn.staticfile.net/jquery/1.10.2/jquery.min.js"></script></head><body><button onclick="downloadTxt('线上链接.txt', '下载文件名称.txt')">下载txt</button><script>function downloadTxt(content, fileName) {$.ajax({url: content,success: function(data, status) {download(`${fileName}.txt`, data)},error: function(data, status) {}});}function download(filename, text) {var pom = document.createElement("a");pom.setAttribute("href","data:text/plain;charset=utf-8," + encodeURIComponent(text));pom.setAttribute("download", filename);if (document.createEvent) {var event = document.createEvent("MouseEvents");event.initEvent("click", true, true);pom.dispatchEvent(event);} else {pom.click();}}</script></body>
</html>

 四、图片

1、图片的预览:直接跳转新页面预览

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>图片预览</title></head><body><img alt=""onclick="seePDF('线上图片链接.jpg')"src="线上图片链接.jpg"><script>/*** @param {Object} val2 文件的线上链接*/async function seePDF(val2) {const response = await fetch(val2)// 使用 fetch 函数获取 url 对应资源的响应const blob = await response.blob()//使用 response.blob() 方法将响应转换为一个 Blob 对象const blobUrl = URL.createObjectURL(blob)//使用 URL.createObjectURL(blob) 方法创建一个指向 Blob 对象的URL window.open(blobUrl, '_blank')}</script></body>
</html>

2、图片的下载

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>图片下载</title></head><body><button onclick="FilehandleClick('线上图片链接.png'">下载图片</button><script>/*** @param {Object} val2 文件的线上链接*/function FilehandleClick(val2) {var imageUrl = val2; // 替换为你要下载的图片的URLvar fileName = "图片名称.jpg"; // 下载的文件名,根据需要自行设置var xhr = new XMLHttpRequest();xhr.open("GET", imageUrl, true);xhr.responseType = "blob";xhr.onload = function() {if (xhr.status === 200) {var blob = new Blob([xhr.response], {type: "image/jpg"}); // 根据实际图片类型进行设置var link = document.createElement("a");link.href = window.URL.createObjectURL(blob);link.download = fileName;link.click();}};xhr.send();var downloadElement = document.createElement("a");var href = window.URL.createObjectURL(blob);downloadElement.href = href;downloadElement.download = name;document.body.appendChild(downloadElement);downloadElement.click();document.body.removeChild(downloadElement);window.URL.revokeObjectURL(href);}</script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android -- 谷歌地图绘制

引言 集成之后&#xff0c;在项目中肯定要打点&#xff0c;画线&#xff08;实线&#xff0c;虚线&#xff09;&#xff0c;绘制区域等。 Android 谷歌地图绘制轨迹polyline 在Android中使用Google Maps绘制轨迹polyline的基本步骤如下&#xff1a; 确保你的项目已经正确集成…

spring:Springboot升级到最新的3.0或者java8升级到java17所需要的改动(持续更新)

背景 Spring Boot 2.x 升级到 Spring Boot 3.x 需要使用Java 17或更高版本&#xff0c;所以有些地方需要改动 pom.xml文件改动 修改pom.xml文件&#xff0c;version版本根据实际情况配置最新。 <!-- java.version版本8更换为17 --> <java.version>17</java.…

JS中链式调用的实现和应用

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏和关注。个人知乎 不知你是否注意过&#xff0c;链式调用在编程中还是很普遍的&#xff0c;无论是原生JavaScript还是在一些框架和库中&#xff0c;都会看到它们的身影。今天我们一探究竟&#xff0c;看下链式调用是怎么…

Chat App 项目之解析(二)

Chat App 项目介绍与解析&#xff08;一&#xff09;-CSDN博客文章浏览阅读76次。Chat App 是一个实时聊天应用程序&#xff0c;旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录&#xff0c;还提供了管理员登录功能&#xff0c;以便管理员可以…

MongoDB数据类型介绍

MongoDB作为一种高性能、开源、无模式的文档型数据库&#xff0c;支持丰富的数据类型&#xff0c;以满足各种复杂的数据存储需求。本文将详细介绍MongoDB支持的主要数据类型&#xff0c;包括数值类型、字符串类型、日期和时间类型、布尔类型、二进制类型、数组、对象以及其他扩…

SpringBoot项目部署时application.yml文件的加载优先级和启动脚本

文章目录 application.yml文件的加载优先级(由高到低)第一级命令行参数第二级Jar包同级目录 /config第三级Jar包同级目录第四级classpath 下的/config第五级classpath 根路径/总结&#xff1a; logback.xml 文件加载顺序当application.yml 和 bootstrap.yml 同时存在时java jar…

【iOS】Block底层分析

目录 前言Block底层结构Block捕获变量原理捕获局部变量&#xff08;auto、static&#xff09;全局变量捕获实例self Block类型Block的copyBlock作为返回值将Block赋值给__strong指针Block作为Cocoa API中方法名含有usingBlock的方法参数Block作为GCD API的方法参数Block属性的写…

使用QGraphicsView思想做一个简单图片查看器

使用QGraphicsView思想做一个简单图片查看器 如果要做一个图片查看器&#xff0c;支持放大、滚动操作&#xff0c;比较直接的方法是&#xff0c;使用QWidget来显示完整图片&#xff0c;将QWidget放入QScrollArea。缩放时调整QWidget的尺寸&#xff0c;QScrollArea会自动调整滚…

MBR20200FCT-ASEMI智能AI专用MBR20200FCT

编辑&#xff1a;ll MBR20200FCT-ASEMI智能AI专用MBR20200FCT 型号&#xff1a;MBR20200FCT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 批号&#xff1a;最新 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;20A 最大循环峰值反向电压&#xff08;VRRM&a…

别再问了!微信小程序的那些事儿,一文搞定

微信小程序是一种无需下载安装即可使用的应用&#xff0c;它嵌入在微信生态中&#xff0c;用户通过微信扫一扫或搜索即可快速访问。 无论是购物、订餐、预约服务&#xff0c;还是玩个小游戏、看篇文章&#xff0c;都不需要下载额外的APP&#xff0c;直接就能在微信里搞定。不会…

联想电脑如何查看ip地址?详细介绍几种方法

随着互联网的普及和技术的飞速发展&#xff0c;IP地址已成为我们日常网络活动中不可或缺的一部分。无论是访问网站、远程办公还是进行网络游戏&#xff0c;IP地址都扮演着重要的角色。对于联想电脑用户来说&#xff0c;了解如何查看自己的IP地址是一项基本技能。虎观代理小二将…

跟国外客户的谈判总是难以掌控?那是因为你还不具备这7种特质

更多外贸干货及开发客户的方法&#xff0c;尽在微信【千千外贸干货】 谈判&#xff0c; 既可以是权力的游戏&#xff0c;也可以是想象的游戏。 有些人熟练地玩游戏而有些人只是模糊地参与着。成功的销售谈判者通常会很巧妙地运用自己的知识&#xff0c;经验和技能来让客户说“Y…

笑出腹肌!Ubuntu:如果连猫都会用,那你呢?‍

目录 &#x1f50d; 初见Ubuntu&#xff1a;喵星人的眼神也亮了 &#x1f50d; &#x1f4bb; Ubuntu&#xff1a;喵星人也能成为技术宅&#xff1f; &#x1f4bb; &#x1f431;‍&#x1f4bb; 喵星人的Ubuntu日常&#xff1a;从追剧到编程&#xff08;误&#xff09; &a…

微信小程序电话号码授权

前端&#xff1a; 文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html uniapp调用的时候&#xff0c;要将bind用替换 <button open-type"getPhoneNumber" getphonenumber"getPhoneNumber"…

JSON Web Token (JWT): 理解与应用

JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间以JSON对象的形式安全地传输信息。JWT通常用于身份验证和授权目的&#xff0c;因为它可以使用JSON对象在各方…

【向量数据库】Ubuntu编译安装FAISS

参考官方的安装指导&#xff1a;https://github.com/facebookresearch/faiss/blob/main/INSTALL.md&#xff0c;不需要安装的可以跳过 ~$ wget https://github.com/facebookresearch/faiss/archive/refs/tags/v1.8.0.tar.gz ~$ tar -zxvf v1.8.0.tar.gz ~$ cd faiss-1.8.0 ~$ …

易基因:RNA修饰N4-乙酰胞苷(ac4C)的调控机制、检测方法及其在癌症中的作用最新研究进展|新方向

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 N4-乙酰胞苷&#xff08;ac4C&#xff09;是一种高度保守的化学修饰&#xff0c;广泛存在于真核和原核生物RNA中&#xff0c;如tRNA、rRNA和mRNA。这种修饰与多种人类疾病显著相关&#…

vuex的原理和使用方法

简介 Vuex 是 Vue.js 应用的状态管理模式&#xff0c;它为应用内的所有组件提供集中式的状态&#xff08;数据&#xff09;管理。可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。 Vuex的构成 state&#xff1a;state 是 Vuex 的数据中心&#xff0c;也就是说state是用来…

关于开启SQL Server服务及其防火墙的方法步骤

一、检查SQL Server服务状态 1、打开服务管理器 可以通过“控制面板” -> “管理工具” -> “服务”来打开服务窗口。或者使用快捷键Win R&#xff0c;输入services.msc后回车&#xff0c;直接打开服务窗口。 2、查找SQL Server服务 在服务列表中&#xff0c;找到与…

职业院校云计算实训室建设方案全景剖析

在信息化社会的今天&#xff0c;云计算作为一项关键技术&#xff0c;正在迅速改变着教育和培训的方式。本文旨在探讨如何通过"职业院校云计算实训室建设方案"&#xff0c;为学生提供一个现代化、高效的学习和研究环境&#xff0c;以适应云计算技术的发展和市场需求。…