限制因此只有相关的上传者才能下载他们的文件

时间:2013-04-20 14:22:04

标签: php codeigniter

我正在建立一个小网站,允许用户从服务器上传和下载他们的个人文件。 Codeigniter正用于项目,我使用file uploading class上传文件。

产生的问题是如何确保只有上传文件的人才能下载它。目前所有文件都已上传到localhost/curious/uploads。虽然这些文件仅对上传人员可见,但如果他们共享上传链接,则任何人都可以下载该文件。

因此,如果史蒂夫上传了一个名为secure_rom.doc的文件且路径为localhost/curious/uploads/secure_rom.doc,则该文件可以由拥有该链接的任何人下载。

如何才能确保只有上传者可以从下载区域下载而不是其他任何人?

2 个答案:

答案 0 :(得分:0)

您可以使用下载脚本(尝试使用codeigniter进行调整)

1)检查用户是否已登录

2)使用文件名和内容类型

设置标题

3)阅读文件并将其发送给客户端!

控制器:

if($userConnected) {
 header('Content-disposition: attachment; filename=' . $file_name);
 header('Content-type: ' . $file_mime);
 $file_content = file_get_contents($file_location);
 echo $file_content;
}
else 
 echo 'No permission !';

Mime content function

答案 1 :(得分:0)

简单方法

-just store the 'id' of the user when he/she uploaded something.
- hide the URL if 'user_id' is different.
- adding random character will have in securing.