我很好奇如何创建一个PHP脚本,将您的用户名和密码传递给我的网络服务器,并且它只下载一个特定于该用户的文件(或多个)。我不知道从哪里开始。有人可以帮忙吗?谢谢!
答案 0 :(得分:1)
这是: http://www.php.net/manual/en/function.readfile.php
您不应该直接在URL中输入密码。相反,使用随机生成的令牌,例如使用MD5($token = md5($username.time());
)。因此,您的用户表应如下所示:
id
email
password
token
您将为用户提供的网址如下:
http://www.example.com/download.php?token=$userToken&file=$file
并下载.php:
<?php
if ( ! isset($_GET['token']) || ! isset($_GET['file'])) {
//throw 404
}
//check token exists in DB else throw 403
//use readfile function :)
答案 1 :(得分:0)
首先,您可以为所有用户创建一个mysql表。然后你可以在第二个文件名和用户名保存,如“file:test.png user:xyz”,每个文件都有一个所有者。如果有人想下载文件,您必须检查该用户是否是数据库中的文件所有者。然后,所有文件的列表将显示该用户的所有文件。
答案 2 :(得分:0)
这是一个简单的例子:
download.php
<?php
if (isset($_GET['user_info']) && check_validity($_GET['user_info'])) {
$file_info = determine_file_info($_GET['user_info']);
header("Content-type: " . $file_info['type']);
header('Content-disposition: attachment; filename="' . $file_info['name'] . '"');
readfile($file_info['absolute_path']);
exit;
}
?>
该模型想象您已经定义了一个函数check_validity
,用于确定给定的用户信息是否有效,以及您是否定义了一个函数determine_file_info
,该函数使用用户信息构建一个数组文件类型,文件名和文件路径(文件在服务器上)。