如何直接通过 PHP 将 Base64 字符串导出到服务器端的文件,而不将其保存在 Web 服务器中?

2022-01-21 00:00:00 base64 php mysql

我正在使用 PHP 和 MySQL 进行编程.

I am using PHP and MySQL for my programming.

我存储了一些 Base64 字符串(从文件中编码).我知道 base64_decode(); 可以将 Base64 字符串解码为文件.

I have stored some Base64 strings (which are encoded from files). I know that base64_decode(); can decode Base64 strings to files.

现在,我想通过 PHP 将这些 Base64 字符串解码为文件,而不将其保存在我的 网络服务器 中;但是,网络浏览器可以下载从网络链接(http://example.com/save.php?fileid=23413).

Now, I want to decode these Base64 strings to files, by PHP, without saving it in my web server; but, web browser can download it from web link (http://example.com/save.php?fileid=23413).

在我的 PHP 页面中,http://example.com/save.php?fileid=23413,我做到了:

In my PHP page, http://example.com/save.php?fileid=23413, I did:

  1. 我可以使用 echo(); 来打印 Base64 字符串.所以,我的 MySQL 查询没有问题.
  2. 我已从我的 PHP 页面中删除 echo();.
  3. 我尝试使用 base64_decode(); 将 Base64 字符串解码为文件.我想当我导航到这个页面时,它会导出一个文件.但是,它返回一个空页面.
  1. I can use echo(); for printing Base64 strings. So, there is no problem with my MySQL queries.
  2. I have delete echo(); from my PHP page.
  3. I tried to use base64_decode(); to decode Base64 strings to files. I want when I nagivate to this page, it will export a file. But, It returns an empty page.

<小时>

你能帮我用 PHP 将 Base64 字符串解码为文件,而无需将其保存在我的 Web 服务器 和 网络浏览器可以从网络链接 下载 (http://example.com/save.php?fileid=23413)?


Can you help me to decode Base64 strings to files, by PHP, without saving it in my web server, and web browser can download it from web link (http://example.com/save.php?fileid=23413)?

推荐答案

在回显输出之前尝试向脚本添加标题

Try adding headers to the script before echoing the output

header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename= ".$file."");
echo base64_decode($file);

相关文章