PHP,如何防止人们下载我的文件?

时间:2017-09-14 07:18:23

标签: php html security

如何阻止人们下载我的文件到其网址(即mywebsite.com/file.csv)?

这是我目前的代码。我想让人们在查看文件之前填写表格:

<?php
$box2 = $_POST['box2'];
$box1 = $_POST['box1'];
$type = $_POST['type'];
$glide = $_POST['glide'];
$data = $box1. ',' .$box2. ',' .$type. ',' .$glide;

$file = "file.csv";

file_put_contents($file, $data . PHP_EOL, FILE_APPEND);
print "<h1 align=center>test</h1>";
?>
<html>
<head>
    <title>test</title>
</head>
<body>
    <h1><a href="prevensjon.html">Go back</a></h1>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您应该将文件放在网站的根文件夹之外(即将其移出/var/www/html / htdocs /等),以便访问者无法访问该文件。

接下来,您可以使用PHP获取文件的数据。尝试

$data = base64_encode(file_get_contents("/var/www/myfile.csv"));

获取文件的数据并将其编码到Base64中,以便快速传输。

现在,您需要做的就是使用数据网址提供强制下载此文件的链接:

<a href="data:text/plain;base64,<?=$data?>" download="name.csv">Download</a>

这会将文件的原始内容放入链接的URL中,download属性意味着将始终下载文件,并且将提供名称(即将其下载为单击链接时调用name.csv文件。)

现在,您只需要确保在您希望链接生成之前不会生成链接。这可以使用基本的PHP来完成。

进一步阅读