码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何在手机百度浏览器下载图片


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 瞌睡凡 2024-04-12 10:15 采纳率: 0% 浏览 3 首页/ 编程语言 / 如何在手机百度浏览器下载图片 javascript百度开发语言 如何在手机百度浏览器下载图片,哪位指点一下。用下方方法,自带的浏览器可以实现下载,在手机百度浏览器下载时,出现大小未知,下载资源出错 const blobUrl = URL.createObjectURL(res) const aDown = document.createElement('a') aDown.download = name aDown.style.display = 'none' aDown.href = blobUrl // 触发点击 document.body.appendChild(aDown) aDown.click() // 然后移除 document.body.removeChild(aDown) 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    4条回答 默认 最新

    • 关注

      码龄 粉丝数 原力等级 --

      • 被采纳
      • 被点赞
      • 采纳率
      专家-赤兔[在线] 全栈领域优质创作者 2024-04-12 10:15
      关注

      引自免费微信小程序:皆我百晓生

      要在手机百度浏览器下载图片,您可以尝试使用canvas将图片转换为Blob对象,然后创建一个隐藏的元素进行下载。以下是详细的步骤和示例代码:

      首先,确保您已经得到了图片的URL。然后,您可以使用以下JavaScript代码在手机百度浏览器中下载图片:

      function downloadImage(url, filename) {
        // 创建一个新的img元素
        const imgElement = new Image();
      
        // 设置图像的src属性为图片的URL
        imgElement.src = url;
      
        // 当图像加载完成时,执行回调函数
        imgElement.onload = function() {
          // 创建一个canvas元素
          const canvas = document.createElement('canvas');
      
          // 设置canvas宽度和高度与图像相同
          canvas.width = imgElement.naturalWidth;
          canvas.height = imgElement.naturalHeight;
      
          // 获取canvas的2D渲染上下文
          const ctx = canvas.getContext('2d');
      
          // 将图像绘制到canvas上
          ctx.drawImage(imgElement, 0, 0);
      
          // 将canvas内容转换为Blob对象
          canvas.toBlob(function(blob) {
            // 如果浏览器支持URL.createObjectURL,那么创建一个blob URL
            if (typeof URL !== 'undefined' && typeof URL.createObjectURL === 'function') {
              const blobUrl = URL.createObjectURL(blob);
              const aDown = document.createElement('a');
              
              // 设置下载文件名
              aDown.download = filename;
              
              // 隐藏下载链接
              aDown.style.display = 'none';
              
              // 设置href为blob URL
              aDown.href = blobUrl;
              
              // 添加下载链接到body并触发点击事件
              document.body.appendChild(aDown);
              aDown.click();
              
              // 移除下载链接
              document.body.removeChild(aDown);
              
              // 在某些情况下,可能需要手动解引用和撤销blob URL
              setTimeout(() => {
                URL.revokeObjectURL(blobUrl);
              }, 100);
            } else {
              console.error('当前浏览器不支持URL.createObjectURL,可能无法下载图片。');
            }
          }, 'image/png'); // 指定图片类型为PNG,可以根据实际图片格式调整(例如'image/jpeg')
        };
      
        // 如果图像加载失败,打印错误信息
        imgElement.onerror = function() {
          console.error('加载图片失败。');
        };
      }
      
      // 使用函数下载图片
      downloadImage('https://example.com/path/to/image.jpg', 'example-image.png');
      

      这段代码首先创建了一个新的元素,并设置了其src属性为给定的图片URL。当图片加载完成后,它会在onload事件处理程序中创建一个元素并将图片绘制到上面。然后,使用canvas.toBlob()方法将canvas内容转换为Blob对象。接下来,如果浏览器支持URL.createObjectURL,则会创建一个隐藏的元素用于下载。最后,添加下载链接到页面,触发点击事件,然后移除链接。

      注意:这种方法可能会在一些旧版本的浏览器或特定环境下出现问题,因为不是所有浏览器都支持URL.createObjectURL和canvas.toBlob。此外,此方法只能用于从同源策略允许的域加载的图片。如果图片来自不同源,则可能需要服务器端配合解决跨源资源共享(CORS)问题。

      展开全部

      本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
      解决 无用
      评论 打赏
      微信扫一扫
      点击复制链接
      分享
      举报 编辑记录
      编辑
      预览
        轻敲空格完成输入
        • 显示为
        • 卡片
        • 标题
        • 链接
        评论
        按下Enter换行,Ctrl+Enter发表内容
      • 关注

        码龄 粉丝数 原力等级 --

        • 被采纳
        • 被点赞
        • 采纳率
        GISer Liu 2024-04-12 12:08
        关注

        该回答引用自GPT-3.5,由博主GISer Liu编写:

        根据你提供的代码和描述,问题似乎在于下载图片时出现了大小未知和下载资源出错的情况。你的代码片段中创建了一个
        元素并设置了其下载属性,然后将其添加到页面中,模拟了用户点击下载的行为,但在手机百度浏览器中却出现了问题。
        针对这个问题,我的解决思路如下:

        1. 检查资源是否正确获取 : 首先确保 res 是正确获取到的资源。你可以使用浏览器开发者工具或者打印日志来确认 res 的内容是否正确。
        2. 探索不同的下载方式 : 除了模拟点击下载外,你还可以尝试其他下载方式,例如使用 Fetch API 或 XMLHttpRequest 来获取资源并保存到本地。
        3. 尝试使用更标准的下载方式 : 元素的下载属性在不同浏览器和环境下的支持情况可能有差异。你可以尝试使用更标准的下载方式,如使用 Blob 对象的 text() 或 arrayBuffer() 方法获取资源内容,然后创建一个 Blob URL 并使用 JavaScript 进行跳转下载。
          基于这些思路,下面是一个可能的解决方案的代码大纲:
          javascriptCopy code
          // 假设 res 是一个 Blob 对象,name 是要保存的文件名
          // 创建一个 FileReader 对象来读取 Blob 内容
          const reader = new FileReader();
          // 读取 Blob 内容完成后的回调函数
          reader.onload = function(event) {
          // 获取读取的结果,即 Blob 内容的 Data URL
          const dataUrl = event.target.result;
          // 创建一个  元素用于下载
          const a = document.createElement('a');
          a.href = dataUrl;
          a.download = name;
          // 将  元素添加到文档中
          document.body.appendChild(a);
          // 触发点击事件,开始下载
          a.click();
          // 下载完成后移除  元素
          document.body.removeChild(a);
          };
          // 读取 Blob 内容
          reader.readAsDataURL(res);
          
          这段代码使用 FileReader 对象来读取 Blob 内容,并在读取完成后创建一个包含 Data URL 的
          元素来触发下载。你可以尝试将这个代码整合到你的项目中并测试是否解决了问题。

        如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

        展开全部

        本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
        解决 无用
        评论 打赏
        微信扫一扫
        点击复制链接
        分享
        举报
        编辑
        预览
          轻敲空格完成输入
          • 显示为
          • 卡片
          • 标题
          • 链接
          评论
          按下Enter换行,Ctrl+Enter发表内容
        • 关注

          码龄 粉丝数 原力等级 --

          • 被采纳
          • 被点赞
          • 采纳率
          CSDN-Ada助手 CSDN-AI 官方账号 2024-04-13 15:02
          关注

          【相关推荐】



          • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7618212
          • 这篇博客你也可以参考下:小程序规格选择弹窗,默认显示选中的规格,点击切换别的规格,踩过的坑,分享下经验!
          • 您还可以看一下 李月喜老师的企业微信开发第三方应用开发篇课程中的 服务商申请注册,服务商助手,加入服务商成长计划及其概述小节, 巩固相关知识点
          • 除此之外, 这篇博客: 小程序入门018~小程序列表背景颜色交替显示 表格背景颜色交替 单双交替显示不同的背景颜色中的 比如像下面这样。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

             

             

            经过一番研究,发现借助css3的nth-child() 选择器可以很好的实现,颜色交替效果。

            如我们定义如下index.wxml

            
            
              {{item}}
            

            在index.js里定义如下数据。

            //index.js
            Page({
              data: {
                list: [1, 2, 3, 4, 5, 6, 7, 8, 9]
              }
            })
            

          如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
          本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
          解决 无用
          评论 打赏
          微信扫一扫
          点击复制链接
          分享
          举报
          编辑
          预览
            轻敲空格完成输入
            • 显示为
            • 卡片
            • 标题
            • 链接
            评论
            按下Enter换行,Ctrl+Enter发表内容
          • 关注

            码龄 粉丝数 原力等级 --

            • 被采纳
            • 被点赞
            • 采纳率
            Kwan的解忧杂货铺 Java领域优质创作者 2024-04-16 12:14
            关注

            中午好🌞🌞🌞
            本答案参考ChatGPT-3.5

            针对如何在手机百度浏览器下载图片,以下是解决方案:

            1. 打开百度浏览器并访问目标网站,在图片上长按选择“保存图片”即可直接保存到手机相册。

            2. 如果需要通过代码实现下载,可以使用下载工具库如downloadjs或者file-saver等,以下是下载代码示例:

            import download from 'downloadjs'
            
            // url为图片链接,name为下载文件时的文件名
            download(url, name, 'image/jpeg')
            
            1. 也可以通过改写上述代码实现直接在页面上下载:
            const xhr = new XMLHttpRequest()
            xhr.open('GET', url)
            xhr.responseType = 'blob'
            xhr.onload = function() {
              if (xhr.status === 200) {
                const blobUrl = URL.createObjectURL(xhr.response)
                const aDown = document.createElement('a')
                aDown.download = name
                aDown.style.display = 'none'
                aDown.href = blobUrl
                document.body.appendChild(aDown)
                aDown.click()
                document.body.removeChild(aDown)
                URL.revokeObjectURL(blobUrl)
              } else {
                console.log('下载失败')
              }
            }
            xhr.send()
            

            以上就是在手机百度浏览器下载图片的三种解决方案。

            展开全部

            本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?
            解决 无用
            评论 打赏
            微信扫一扫
            点击复制链接
            分享
            举报
            编辑
            预览
              轻敲空格完成输入
              • 显示为
              • 卡片
              • 标题
              • 链接
              评论
              按下Enter换行,Ctrl+Enter发表内容
            收起3条回答
            编辑
            预览
              轻敲空格完成输入
              • 显示为
              • 卡片
              • 标题
              • 链接

              报告相同问题?

              提交
            • 相关阅读:
              JVM学习-监控工具(一)
              映翰通C++ 一面(技术面、65min、offer)
              RabbitMQ 3.7.9版本中,Create Channel超时的常见原因及排查方法
              近世代数之群
              Linux 内存管理 pt.1
              SpringCloud Alibaba(二) - Sentinel,整合OpenFeign,GateWay服务网关
              pycharm中做web应用(11)基于Django和mysql 做用户登录验证
              [手写spring](3)初始化singletonObjects,实现依赖注入
              JupyterServer配置
              牛客刷题<九>使用子模块实现三输入数的大小比较
            • 原文地址:https://ask.csdn.net/questions/8087237
            • 最新文章
            • 攻防演习之三天拿下官网站群
              数据安全治理学习——前期安全规划和安全管理体系建设
              企业安全 | 企业内一次钓鱼演练准备过程
              内网渗透测试 | Kerberos协议及其部分攻击手法
              0day的产生 | 不懂代码的"代码审计"
              安装scrcpy-client模块av模块异常,环境问题解决方案
              leetcode hot100【LeetCode 279. 完全平方数】java实现
              OpenWrt下安装Mosquitto
              AnatoMask论文汇总
              【AI日记】24.11.01 LangChain、openai api和github copilot
            • 热门文章
            • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
              奉劝各位学弟学妹们,该打造你的技术影响力了!
              五年了,我在 CSDN 的两个一百万。
              Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
              面试官都震惊,你这网络基础可以啊!
              你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
              心情不好的时候,用 Python 画棵樱花树送给自己吧
              通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
              13 万字 C 语言从入门到精通保姆级教程2021 年版
              10行代码集2000张美女图,Python爬虫120例,再上征途
            Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
            正则表达式工具 cron表达式工具 密码生成工具

            京公网安备 11010502049817号