解决:js 根据图片链接(image url)下载,有的打开预览,有的下载

这篇具有很好参考价值的文章主要介绍了解决:js 根据图片链接(image url)下载,有的打开预览,有的下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、问题描述

https://*****/drugTestReport/20230515/202305151106111386737.png

https://*****/drugTestReport/20230605/202306051540314553141.jpg

同样结构的两个图片链接,使用window.open(url),一个是打开预览,另一个是下载

 

2、解决方法,通过fetch请求url,获取blob类型,区分情况,统一成下载。

/**
     *  ### 适合预览操作的 Blob 类型,需要将链接地址字符内容转变成blob地址
          - image/png
          - image/jpeg
          - image/gif
          - audio/mpeg
          - audio/ogg
          - audio/wav
          - video/mp4
          - video/ogg
        ### 适合下载操作的 Blob 类型
          - text/plain
          - text/csv
          - application/pdf
          - application/json
          - application/xml
          - application/zip
          - application/octet-stream
     */
    async function downloadImg(url) {
      try {
        const res = await fetch(url);
        if (!res.ok) {
          throw new Error("fetch network response was not ok");
        }
        const blob = await res.blob();
        if (
          blob.type.includes("image") ||
          blob.type.includes("audio") ||
          blob.type.includes("video")
        ) {
          const a = document.createElement("a");
          a.href = URL.createObjectURL(blob);
          a.download = "";
          document.body.appendChild(a);
          a.click();
        } else {
          window.open(url);
        }
      } catch (error) {
        //有些图片url请求本身就出现了跨域等问题,目前纯前端本人还无解,只能直接open
        console.log("catcherror", err);
        window.open(url);
      }
    }

 文章来源地址https://www.toymoban.com/news/detail-483804.html

到了这里,关于解决:js 根据图片链接(image url)下载,有的打开预览,有的下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用PHPqrcode根据Url生成图片二维码

    1.首先下载这个插件的源码包 下载地址:PHP QR Code download | SourceForge.net 下载后放到vendeor文件夹下面 引用文件类 }

    2024年02月09日
    浏览(38)
  • Vue中qrcode的使用方法(生成二维码插件) / 前端页面根据URL链接生成二维码

    1.下载 npm install qrcode --save-dev 2.引入(在所需要的页面中引入) import QRCode from “qrcode”; //引入生成二维码插件 3.生成二维码 作者:微微一笑绝绝子 出处:Vue中qrcode的使用方法(生成二维码插件) / 前端页面根据URL链接生成二维码 - 微微一笑绝绝子 - 博客园 本博客文章均为作者

    2024年02月15日
    浏览(64)
  • 【前端】根据后端返回的url进行下载并设置文件下载名称

            在我们项目当中存储文件是存储到厂商的服务器上的,然后厂商返回一个可以直接下载url地址,但是前端使用这个url下载的时候永远都是保存一个名字,这时候我们就需要设置文件保存的名称,         那么如何实现呢?使用了fetch将url转换成了blob即可。 代码

    2024年02月04日
    浏览(62)
  • vue 中从后端获取到文件的 url 地址,前端根据 url 地址下载文件

    项目用的是 vben admin 框架,用的是 vue3 + TS 项目需求数据导出功能,前端需要实现文件下载功能 后端返回的是文件的 url 地址 (本项目中返回的是阿里云 oss 的文件地址) 从后端得到的是一个 url 地址,先通过 fetch api 请求这个 url 地址并转换成 blob 对象,通过 URL.createObjectUrl() 将 blo

    2024年02月06日
    浏览(49)
  • js特效——根据鼠标位置移动的图片

    1、offsetX offset意为偏移量,是事件对象距左上角为参考原点的距离。以元素盒子模型的内容区域的左上角为参考点。不包括border。 2、clientX 事件对象相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条 3、pageX 事件对象相对于整个文档的坐标以像素为

    2024年02月03日
    浏览(47)
  • Flutter:使用url_launcher打开外部浏览器、拨打电话、发送短信、打开第三方app、打开应用商店下载应用

    Flutter中的 url_launcher 是一个用于打开URL的插件。它允许在Flutter应用程序中打开网址、发送电子邮件、拨打电话等操作。使用 url_launcher 插件,可以轻松地在应用程序中集成各种URL操作。 官方地址 https://pub-web.flutter-io.cn/packages/url_launcher 安装 打开网址 这里有两个注意点: 模拟

    2024年02月08日
    浏览(81)
  • js图片url反转file文件 vue

    场景 由于项目需求,需要将图片 url 转成文件格式上传到服务器 参考博客 :图片url转file 封装js transferFile.js function getBase64 ( url, callback ) { //通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement ( ) 创建 img 省去了 append ( ) ,也就避免了文档冗余

    2024年02月20日
    浏览(34)
  • js下载url文件 —— 三种方法

    2024年02月14日
    浏览(50)
  • js根据base64下载文件

    项目中有个下载模板的需求,接口直接给返回的是一个base64,如图 这里的bytes不是流格式,而是一个base64格式的,这就导致我们需要先将base64转为了流,然后通过new Blob方式下载文件就行,下面看代码 定义了一个base64转二进制流的方法,接下来开始根据得到的二进制流下载文

    2024年02月17日
    浏览(42)
  • java访问https链接下载图片

    // 文件下载存储路径 String savePath = “D:/zhxcmfs/myFiles”; // 文件命名 String fileName = “图片.png”; // https文件下载链接 String apiHttp = “https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpgrefer=http%3A%2F%2Flmg.jj20.comapp=2002size=f9999,10000q=a80n

    2023年04月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包