2

我有一个关于阻止下载和保存上传文件的问题。

我的用户可以上传多种文件类型,如 doc、pdf、ppt 等......

如果任何人有 url,所有文件类型都可以轻松下载。

那么防止文件下载的更好方法是什么。

或者我将上传的文件转换为一些无法轻松下载的特定格式(例如闪存)..

我在 php 和 mysql 上运行。

谢谢阿维纳什
_

4

3 回答 3

2

在这方面你有两个选择。第一种是通过 PHP 脚本将文件移动到服务器 Web 目录之外的服务器端文件夹。第二种是将文件存储在 MySQL 表的BLOB列中。两者都将阻止用户直接访问文件,而无需将文件转换为不太容易下载的格式。

于 2010-03-04T04:57:37.673 回答
1

将文件上传到文档根目录之外。例如:

/var/username/uploads/file.docx

您的文档根目录在哪里

/var/username/public_html/index.php

所以他们不能直接访问。然后,如果您想允许下载,请创建一个名为“download.php”的 PHP 文件,该文件的功能类似于:

$data  = file_get_contents('/var/username/uploads/file.docx');
header('Content-Type: application/docx');
header('Content-Length: '.strlen($data));
header('X-Content-Type-Options: nosniff');
echo $data;

显然,您可以添加检查以查看用户是否具有下载此特定文件或已登录的适当权限。

于 2010-03-04T10:53:38.563 回答
0

解决办法是在上传文件夹设置用户和密码,只有知道认证细节的用户才能下载文件。检查下一个链接以了解如何在服务器文件夹上制作 htpasswd 文件:


http://httpd.apache.org/docs/1.3/programs/htpasswd.html


于 2010-03-04T11:51:58.643 回答