当前位置: 首页 > news >正文

网站最好的优化是什么腾讯cdn加速wordpress

网站最好的优化是什么,腾讯cdn加速wordpress,大学生html网页设计作业,淘宝运营培训班学费大概多少我们经常会碰到跨域来方位PDF#xff0c;同时需要下载、打印的需求#xff0c;通常由于浏览器的安全策略#xff0c;可以预览#xff0c;但是下载和打印可能会受限#xff0c;这时候怎么办呢#xff1f; 1.创建一个隐藏的标签 要下载 iframe 中的 PDF 文件#xff0c;…我们经常会碰到跨域来方位PDF同时需要下载、打印的需求通常由于浏览器的安全策略可以预览但是下载和打印可能会受限这时候怎么办呢 1.创建一个隐藏的标签 要下载 iframe 中的 PDF 文件你可以通过以下步骤实现 获取 PDF 文件的 URL确保你已经有一个指向 PDF 文件的 URL即 url。创建一个下载链接使用 JavaScript 创建一个隐藏的下载链接并触发点击事件来下载文件。 以下是一个示例代码 // 假设 url是你已经定义的 PDF 文件 URL const downloadPdf () {const link document.createElement(a);link.href url;link.download document.pdf; // 你可以根据需要更改文件名document.body.appendChild(link);link.click();document.body.removeChild(link); };// 在你的组件中添加一个按钮来触发下载 button onClick{downloadPdf}下载 PDF/button将上述代码集成到你的 index.jsx 文件中确保 slnPdfUrl 是有效的 PDF 文件 URL。用户点击按钮时PDF 文件将被下载。 示例集成 假设你的 index.jsx 文件如下 import React from react;const YourComponent ({ slnPdfUrl }) {const downloadPdf () {const link document.createElement(a);link.href slnPdfUrl;link.download document.pdf;document.body.appendChild(link);link.click();document.body.removeChild(link);};return (diviframe classNamesln-detail-pdfsrc{slnPdfUrl}width100% height100%/button onClick{downloadPdf}下载 PDF/button/div); };export default YourComponent;但是呢有些浏览器会直接打开一个新窗口显示pdf并没有下载PDF 2. Fetch方式 上面的问题通常是由于以下几个原因造成的 浏览器行为 某些浏览器可能不会自动下载文件而是会在新标签页中打开文件。这取决于浏览器的设置和文件类型。 文件 URL 的问题 确保 url 是一个有效的 URL并且指向一个可以直接下载的文件资源。 CORS 问题 如果 url 是一个跨域的 URL浏览器可能会阻止下载操作除非服务器正确设置了 CORS 头。 文件 MIME 类型 确保服务器返回的文件具有正确的 MIME 类型例如PDF 文件应为 application/pdf以确保浏览器能够正确处理下载。 解决方法 1. 检查文件 URL 确保 url 是一个有效的 URL并且指向一个可以直接下载的文件资源。你可以在浏览器中直接访问该 URL看看是否能正常下载文件。 2. 检查 CORS 设置 如果 url 是一个跨域的 URL确保服务器设置了正确的 CORS 头。例如服务器应该返回以下头信息 Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Headers: Content-Type3. 检查文件 MIME 类型 确保服务器返回的文件具有正确的 MIME 类型。例如对于 PDF 文件服务器应该返回 Content-Type: application/pdf。 4. 使用 fetch 或 axios 下载文件 如果上述方法都不奏效可以尝试使用 fetch 或 axios 来下载文件。以下是一个使用 fetch 的示例 const slnDownload async () {if (!url) {message.error(PDF URL 无效);return;}try {const response await fetch(url);if (!response.ok) {throw new Error(网络响应不正确);}const blob await response.blob();const url window.URL.createObjectURL(blob);const a document.createElement(a);a.href url;a.download document.pdf;document.body.appendChild(a);a.click();a.remove();window.URL.revokeObjectURL(url);} catch (error) {message.error(下载文件时出错: error.message);} };示例代码解释 检查 URL 确保 url 存在且有效。 使用 fetch 获取文件 使用 fetch 发送请求以获取文件的二进制数据blob。 创建下载链接 创建一个临时的 URL 对象URL.createObjectURL。创建一个隐藏的 a 标签并设置其 href 和 download 属性。触发点击事件以开始下载。移除临时的 a 标签并释放 URL 对象。 3.组件化 笔者直接提供一个react的PDF组件可以直接复制到自己工程里使用。 工程结构 index.jsx代码 import React, { useRef, useEffect, useState } from react; import { Button, message} from antd; import ./index.less; export default function RPdf(props, ref) {const [url, setUrl] useState();const iframeRef useRef(null);useEffect(() {init();}, [props.src,props.download])const init async() {if (!props.src) {return;}try {const pdfResponse await fetch(props.src);if (!pdfResponse.ok) {throw new Error(网络响应不正确);}const blob await pdfResponse.blob();const url window.URL.createObjectURL(blob);setUrl(url);} catch (error) {message.error(加载 PDF 时出错: error.message);}}const downloadPdf async() {if (!url) {message.error(PDF URL 无效);return;}try {const a document.createElement(a);a.href url;a.download props.download;document.body.appendChild(a);a.click();a.remove();window.URL.revokeObjectURL(url);} catch (error) {message.error(下载文件时出错: error.message);}}const printPdf () {if (!url) {message.error(PDF URL 无效);return;}const iframe iframeRef.current;if (!iframe) {message.error(无法找到 iframe);return;}iframe.contentWindow.focus();iframe.contentWindow.print();}return (div classNamer-pdf-containerdiv classNamer-pdf-headerButton onClick{downloadPdf}下载/ButtonButton onClick{printPdf}打印/Button/divdiv classNamer-pdf-contentiframe classNamer-pdfref{iframeRef}src{url}width100% height100%//div/div) }index.less代码 .r-pdf-container {width: 100%;height: 100%;display: flex;flex-direction: column;gap: 6px;margin: 12px;.r-pdf-header {height: 40px;display: flex;justify-content: flex-end;gap: 8px;}.r-pdf-content {width: 100%;height: 100%;// overflow: auto;.r-pdf {border: 0px;}} }使用 RPdf src{url} download{yourDownloadName.pdf} /
http://www.hkea.cn/news/14506531/

相关文章:

  • 多国语言外贸网站模板网站备备份教程
  • 做小程序好还是做微网站好php网站怎么做后台管理
  • dedecms蓝色企业网站模板免费下载c net 做网站好吗
  • 满洲里建设局网站首页怎么创建网页链接
  • 四川省建设领域信用系统网站网站域名的作用是什么意思
  • 国外创意型网站设计网站开发行业竞争大吗
  • 电商网站开发服务海南省建设工程质量安全检测协会网站
  • 做问卷的网站生成二维码浙江建设厅网站
  • wordpress地址和站点地址什么网站可免费发布信息
  • 域名网站这么做电子商务网站建设实验报告
  • 寻找郑州网站建设公司商业空间展示设计
  • 电商网站运营步骤什么网站是做家教的
  • 网站备案都审核什么资料儿童网站 源码
  • xcode 网站开发同时做网站建设和代账
  • 有哪些推广的网站专业网站建设微信官网开发
  • 榆社县济南网站建设公司 大学手机网站建设规划书
  • 网站 建设 汇报东莞最新招聘
  • 如何在手机上搭建网站Wordpress调用百度云
  • 杨幂做的网站广告遵义网站开发的公司
  • 程序员 做网站 微信公众号 赚钱思而忧网站
  • 网站制作 苏州湖州外贸网站建设
  • 自适应网站开发公司为什么要选择高端网站定制
  • asp购物网站企业查询学历
  • 网站域名实名证明打电话沟通做网站
  • 百度安全网站检测快速建网站工具
  • 广州市网站建设 乾图信息科技高校二级网站建设方案
  • 网站建设vps石家庄中小企业网站制作
  • 网站内的地图导航怎么做网络规划设计的步骤包括哪些
  • 网站开发微信登录流程wordpress文章调用链接
  • 网站推广费用大概需要多少钱虚拟主机如何安装WordPress