我正在创建一个允许用户通过JavaScript插件查看文件的网站。
为了做到这一点,并保持文件的安全性,我将在每次访问JavaScript插件时创建原始文件的一次性唯一副本。
原始文件最大为30mb,如何为系统的多个用户进行扩展?假设是否有100人创建并访问该文件的副本。
答案 0 :(得分:1)
您可以通过创建htaccess重写来将用户引用到PHP脚本来执行此操作:
RewriteEngine On
RewriteRule ^download/([^/]+) /lib/download.php?file=$1 [QSA]
这会将任何请求转发至yourdomain.com/download/anyfilehere.mp3?one_time_token=ABCDEFG
至lib/download.php
,并将$_GET['file']
设置为anyfilehere.mp3
。我们会使用one_time_token
转发$_GET
[QSA]
参数。
download.php
可能看起来像这样:
<?php
if (!empty($_GET['file'])) {
if (!empty($_GET['one_time_token'])) {
if (TokenOK($_GET['one_time_token'])) { //Create a function called TokenOK where you look up the download token in eg. a database
$fileName = '/var/www/downloadfolder/' . $_GET['file'];
if (file_exists($fileName)) {
ExpireToken($_GET['one_time_token']); //Create a function called ExpireToken where you expire the token in eg. the database
readfile($fileName); //Read the file to the user
die();
} else {
die('Error: file not found');
}
} else {
die('Error: token is not OK');
}
} else {
die('Error: token is not specified');
}
} else {
die('Error: file is not specified');
}
?>
需要考虑的事项:
readfile