当前位置:首页 > 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 提供了一系列方法来获取、设置和操作 HTML 元素的属性。以下是常用的属性操作方法: attr() 方法 用于获取或设置元素的属性值。获取属性时,传入属性名;设…

jquery 删除

jquery 删除

jQuery 删除元素的方法 使用 jQuery 删除 DOM 元素可以通过多种方式实现,具体方法取决于需求。以下是几种常见的删除方式: remove() 方法 remove() 方法会删除选中的元…

jquery 隐藏

jquery 隐藏

jQuery 隐藏元素的方法 使用 jQuery 隐藏元素可以通过多种方式实现,以下是几种常见的方法: hide() 方法hide() 是最简单的隐藏元素方法,它会将元素的 display 属性设置…

jquery字符串

jquery字符串

jQuery 字符串操作 jQuery 提供了多种方法来处理字符串,尽管它主要是一个 DOM 操作库,但字符串处理在动态内容生成和数据交互中非常常见。 字符串拼接与连接 使用 JavaScript…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…

css jquery

css jquery

CSS 与 jQuery 的基础用法 CSS(层叠样式表)用于控制网页的样式和布局,而 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…