如果我有一个文件,例如编码为Base64字符串的MS Word文档,有没有办法通过将字符串放在A标记的href属性中以及一些MIME信息使其可用作下载?
理想情况下,我想做点像......
<a href="data:Application/base64,UEsDBBQABgAIAAAAIQDfpNJsWgEAAC[...]"></a>
[...]作为字符串的其余部分,为了便于阅读而被截断。
我只需要知道这是否值得追求,或者我是否正在咆哮错误的树。感谢。
答案 0 :(得分:0)
我设法通过以下方法完成了我想做的事情:
1)我使用.htaccess重写网址如下:
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对于找到有效的解决方案非常有用。