0

我将 Meteor 和 CollectionFS 与 S3 一起使用,以使用不同的商店为同一集合中的缩略图和全尺寸图像提供服务。我想在“dblclick”事件时下载全尺寸图像。

var src = fileRecord.url({
  store: 'images',
  download: true
});

var a = $('<a>');
a.attr('href', src); // canvas.toDataURL(viewerImageObject.original.type);
a.attr('download', fileName); // canvas.toDataURL(viewerImageObject.original.type);
a.appendTo(document.body);
a.trigger('click');

不幸的是,当该事件触发时,前端集合中的所有项目都将被删除——通过一个简单的 {{#each}} 块帮助器在由 collection.find() 返回的游标上呈现。这在后端不是持久的,只有前端。

一周前我为此提交了 CollectionFS 票,我一直试图将其分开但无济于事。我也意识到我可以使用 FileSaver.js 和 Canvas,但在移动设备和大图像上,尤其是在 polyfill 浏览器上,这会变得非常繁重。

如何防止我的收藏中的项目在下载图像时被删除?

4

1 回答 1

1

解决方案:将target="_blank"添加到您的锚标记中,这将使您的浏览器打开一个新选项卡以下载链接,一切都会好起来的

TLDR

虽然我能够做到这一点,但我不确定是什么问题。看起来 Iron Router 会将您当前的选项卡导航到您单击的下载链接(但地址栏上的 url 保持不变,这让我想知道),因此所有收藏都将消失,您的网站将变为空白

于 2015-09-05T07:49:00.193 回答