如何阻止人们下载我的文件到其网址(即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>
答案 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来完成。