当前位置:首页 > jquery

jquery下载图片

2026-03-16 11:26:22jquery

使用jQuery下载图片的方法

方法一:通过创建隐藏的<a>标签触发下载

动态创建一个隐藏的<a>标签,设置其href为图片URL,并添加download属性。通过jQuery触发点击事件实现下载。

function downloadImage(url, filename) {
  $('<a>', {
    href: url,
    download: filename || 'image.jpg'
  }).appendTo('body').get(0).click().remove();
}

// 调用示例
downloadImage('https://example.com/image.jpg', 'myImage.jpg');

方法二:结合Canvas处理跨域图片

jquery下载图片

当遇到跨域图片时,可以先通过Canvas绘制图片,再转换为可下载的数据URL。

function downloadCrossOriginImage(url, filename) {
  const img = new Image();
  img.crossOrigin = 'Anonymous';
  img.onload = function() {
    const canvas = document.createElement('canvas');
    canvas.width = this.naturalWidth;
    canvas.height = this.naturalHeight;
    canvas.getContext('2d').drawImage(this, 0, 0);

    const a = document.createElement('a');
    a.href = canvas.toDataURL('image/png');
    a.download = filename || 'image.png';
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
  };
  img.src = url;
}

方法三:通过Blob对象下载

jquery下载图片

使用AJAX获取图片数据后转换为Blob对象,创建对象URL实现下载。

function downloadViaBlob(url, filename) {
  $.ajax({
    url: url,
    xhrFields: { responseType: 'blob' },
    success: function(data) {
      const blobUrl = URL.createObjectURL(data);
      $('<a>', {
        href: blobUrl,
        download: filename || 'file.jpg'
      }).appendTo('body').get(0).click();
      setTimeout(() => {
        URL.revokeObjectURL(blobUrl);
      }, 100);
    }
  });
}

注意事项

  • 跨域请求需要服务器配置CORS头部
  • download属性在部分浏览器可能有限制
  • 大文件建议使用Blob方式时添加进度提示
  • 确保文件名包含正确扩展名(如.jpg/.png)

分享给朋友:

相关文章

jquery 之家

jquery 之家

jQuery 之家相关资源 jQuery 之家是一个提供 jQuery 插件、教程和代码示例的中文资源网站。以下是关于 jQuery 之家的一些有用信息: 网站内容 提供丰富的 jQuer…

jquery 菜鸟

jquery 菜鸟

以下是针对 jQuery 初学者的基础指南,涵盖核心概念和常用操作: jQuery 简介 jQuery 是一个快速、轻量级的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和…

jquery作用

jquery作用

jQuery的作用概述 jQuery是一个快速、简洁的JavaScript库,主要用于简化HTML文档遍历、事件处理、动画设计和Ajax交互等操作。其核心目标是让开发者以更少的代码完成更多功能,同时解…

jquery页面

jquery页面

jQuery 页面操作指南 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互的操作。以下是 jQuery 在页面中的常见使用方法…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

jquery属性

jquery属性

jQuery 属性操作 jQuery 提供了多种方法来操作 HTML 元素的属性。这些方法可以用于获取、设置、修改或删除元素的属性。 获取属性值 使用 attr() 方法可以获取指定属性的值。例如,…