PHP 强制文件下载

什么是强制文件下载?

强制文件下载是指网站中的某个文件(图片、音频、文本等等)可被浏览器直接打开或在线查看,而不是被下载到用户的计算机上。这个时候我们可以在网页中添加下载链接或按钮来实现强制文件下载。在本文中,我们将介绍如何使用 PHP 创建一个强制文件下载的脚本。

使用 PHP 创建强制文件下载

创建强制文件下载脚本需要以下步骤:

步骤一:设置响应头(header)

浏览器要求文件下载的时候,需要读取相应头(header)中的信息,以判断是否要强制下载文件到用户的计算机上。我们可以使用 header() 函数来设置响应头,如下所示:

header('Content-Disposition: attachment; filename="example.jpg"');

这条语句告诉浏览器,文件类型为附件(attachment),文件名为 example.jpg。这样,当用户点击下载链接或按钮时,浏览器就会弹出下载文件对话框。

步骤二:读取文件内容

使用 file_get_contents() 函数读取需要下载的文件的内容,并将其存储到一个变量中:

$file = file_get_contents('example.jpg');

注意:我们需要将文件的相对路径或绝对路径作为参数传递给 file_get_contents() 函数。

步骤三:输出文件内容

最后,使用 echo 输出文件内容即可:

echo $file;

将以上三段代码整合在一起,就形成了下面这个完整的强制文件下载脚本:

<?php

$file = file_get_contents('example.jpg');

header('Content-Disposition: attachment; filename="example.jpg"');

echo $file;

?>

将以上代码保存为 download.php。然后,在需要下载文件的地方,使用以下链接或按钮来调用下载脚本:

<a href="download.php">Download</a>

点击链接或按钮后,浏览器就会弹出下载文件对话框,点击确定后,文件就会被下载到用户的计算机上。

这个简单的下载脚本可以用来下载任何类型的文件,包括图片、音频、文本等等。

总结

在本文中,我们学习了使用 PHP 创建强制文件下载的方法。关键是要正确设置响应头中的信息,以便浏览器判断是否需要强制下载文件。稍加改变,你还可以为下载文件添加登录验证、文件大小限制和下载次数限制等功能。

后端开发标签