我的网站中有 zip 文件,并且我创建了一个登录系统,因此只有具有有效密码的用户才能下载 zip 文件一次。
但是他们总是有可能通过在浏览器地址栏中输入文件路径来直接下载 zip 文件。
您可以通过查看源代码获取 zip 文件的链接。
如何通过简单地在浏览器地址栏中发布文件链接来拒绝人们下载 zip 文件?有可能吗?
首先,在您的根目录 (~/) 中创建一个名为 secure_zip 或其他名称的文件夹。这应该位于您的 public_html 文件夹旁边(这意味着它们不能通过输入 URL 来访问)。
接下来,创建一个新的 php 脚本,称为 file.php 或其他东西:-
<?php
public function sendFile() {
$filename = "sample.zip";
$attachment_location = $_SERVER["DOCUMENT_ROOT"]
. "../secure_zip/" . $filename;
if (file_exists($attachment_location)) {
header('Cache-Control: public'); // needed for i.e.
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="' . $filename . '"');
readfile($attachment_location);
die();
} else {
die('Error: File not found.');
}
}
如果您使用您喜欢的任何逻辑对用户进行身份验证,请调用 sendFile(),例如:
if (true) { sendFile(); }
与其将文件放在 Web 可访问的文件夹中(/var/www/
例如),不如将其放在其上方,这样用户就无法浏览到它(例如/var/files
)。然后将其提供给您的用户,在他们输入密码后,使用 php 脚本,让脚本像文件一样设置标题,并使用readfile将文件的内容输出给用户。