【问题标题】:File encoded as Base64 encoded string directly in href attribute for download直接在 href 属性中编码为 Base64 编码字符串的文件以供下载
【发布时间】:2015-01-08 15:08:06
【问题描述】:

如果我有一个文件,例如编码为 Base64 字符串的 MS Word 文档,是否可以通过将字符串与一些 MIME 信息一起放入 A 标记的 href 属性中来使其可供下载?

理想情况下,我想做类似...

<a href="data:Application/base64,UEsDBBQABgAIAAAAIQDfpNJsWgEAAC[...]"></a>

[...] 是字符串的其余部分,为了便于阅读而被截断。

我只需要知道这是否值得追求,或者我是否找错了树。谢谢。

【问题讨论】:

    标签: html base64


    【解决方案1】:

    我设法通过以下方法完成了我想做的事情:

    1)我使用.htaccess重写了url如下:

    RewriteRule ^downloads/(.*)$ file.php?filename=$1 [L,NC]
    

    这样我的链接可以指向一个看起来是真实文件而不是 .php 文件的文件,所以/downloads/your_file.doc 变成了/file.php?filename=your_file.doc

    2) 在file.php 中,我将标题设置如下:

    $filename = $_GET['filename'];
    header("Content-type: application/msword"); 
    header("Content-Disposition: attachment; filename=$filename"); 
    echo base64_decode($your_base64_data);
    

    请注意,Content-type: application/msword 仅适用于 .doc 文件,您需要将其替换为相关文件的适当 mime 类型,或者如果愿意,甚至可以通过将其替换为变量来使其成为动态。

    我发现this thread 对找到可行的解决方案非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2021-01-23
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      相关资源
      最近更新 更多