如何下载文件名已更改的文件?

时间:2016-01-25 13:09:09

标签: ruby-on-rails angularjs cloudinary

让我们考虑一下这样的情况:

  • 我有一个包含例如吉他的图像
  • 它的名字是guitar.png
  • 上传后,将名称更改为随机字符串,如 kouyyvrmbubwkrh7ayvk.png
  • 现在我想要一个指向此文件的链接,但是点击它应该下载具有更改名称的文件,例如。 “my-custom-attachment.png”或其他什么

现在我使用带有angular属性的简单<a>...</a>

<a ng-href="{{ vm.resource.attachment_url }}"> Download attachment </a>

vm.resource.attachment_url显然是带有内部API的对象

我无法在Cloudinary API中找到此类实现。另外,我希望我足够清楚。

2 个答案:

答案 0 :(得分:2)

Cloudinary支持将图像作为附件发送,强制它以原始文件名下载和存储 这可以通过简单地将fl_attachment添加到网址,或者在使用辅助方法时将flags参数设置为附件来完成,例如: cloudinary.url('kouyyvrmbubwkrh7ayvk.png', {flags: 'attachment'}); 在您的特定情况下,这将导致图像保存为 guitar.png

更多信息:http://support.cloudinary.com/hc/en-us/articles/202521252-How-can-I-deliver-an-image-as-an-attachment-

答案 1 :(得分:1)

使用锚点的download attribute,它指定将接收下载文件的名称:

<a ng-href="{{ vm.resource.attachment_url }}" download="my-custom-attachment.png"> Download attachment </a>

请参阅the demo该属性的工作原理。

另一种选择是将文件内容下载到Blob对象中,然后使用修改后的文件名抛出blob内容。查看demo