HTML锚点标记下载,文件名属性

3

我有一个报告数据库,其中可能的附件以Base64字符串的形式直接嵌入到页面中。 <a>标记使用下载属性提供文件名。

当浏览器可以本地呈现附件类型(例如图像、音频文件、文本文件等)时,必须下载它们有点麻烦。

是否可以使用类似<a filename=$ATTFILENAME data=...>这样的东西,这样如果用户右键单击链接下载它,文件名就已经填好了?

(使用<a download=$ATTFILENAME data=...>并单击链接时,文件名与(PHP)变量$ ATTFILENAME 匹配。如果没有下载属性,则文件名为“download”)。


“必须下载浏览器本身可以呈现的附件类型,这有点烦人。” - 你的意思是什么?你想要做什么?“是否可以使用类似于<a filename=$ATTFILENAME data=...>这样的东西,以便如果用户右键单击链接下载它,文件名已经填好了?” - 这正是download属性的用途(你似乎已经在使用它了)? - MrWhite
例如,浏览器可以在不必打开本地程序查看文件的情况下,在浏览器中呈现TXT附件、图片、音频,甚至是电子表格。 - user208145
1
这是一个编程问题,你应该在Stackoverflow上提问,而不是在这里,是的,我经常这样做。 - Rob
1个回答

2
解决方法很简单。如果您在模板中使用内联php,则可以使用简单的<a download="<?php echo $ATTFILENAME ?>" href="Base64EncodedData">来解决问题。如果您使用的是模板系统(Smarty、twig、Blade等),请参考其文档以了解如何输出字符串。当然,这些假设您有一个$ATTFILENAME变量,其中包含原始文件名。如果您在上传时没有存储它,则(据我所知)无法恢复原始文件名。请注意保留HTML标签。

文件名是一个实际的属性吗? - user208145
实际上……不是这样的,我的错 :) 但它确实支持download属性,可以实现此功能。我已经相应地更新了我的答案。 - Meki
不起作用。我正在使用 :: <a href="XXXXXXX" target="_blank" download class="btn btn-success btn-lg btn-icon waves-effect waves-themed" style="float: right; margin-bottom: 10px"> <i class="fal fa-download"></i> </a> - pankaj
download 属性应该有一个值,确切地说是文件的名称,而 href 属性应该包含 base64 编码的文件。 顺便说一下,这个解决方案不适用于大文件。 - Meki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接