PHP文件传输

时间:2016-04-07 19:35:49

标签: php file security file-transfer

假设我的设备知道要从我的服务器下载的文件的名称。

如何在不让设备访问文件系统的情况下将所述文件传输到该设备?

例如,假设我有一个页面ping.php,它接收" something.zip"

的获取请求

ping.php知道something.zip的位置(在服务器的文件系统的某个地方),但是我不能允许用户访问文件系统,或者让他们知道的位置该文件(甚至需要使用wireshark之​​类的东西隐藏它)。

我该如何解决这个问题?

这可能是一个简单的解决方案,我对这些问题并不是非常精通。

如果它有所不同,我将在Linux机器上使用Apache服务器。

1 个答案:

答案 0 :(得分:3)

您可以创建一个PHP脚本,以便在文件位于无法通过Web访问的文件夹中时方便文件传输。这就是我通常在我的系统上处理文件下载的方式。

您可以使用任意数量的示例脚本来执行实际的文件传输。关键是将该文件放在Web可访问的文件系统之外。

为了完整起见,以下是我过去使用的一些代码,用于在PHP中进行文件下载:

$filename="filetodownload.xyz";
$cf = realpath("/non-webaccessible-folder/".$filename);
$file=$cf;

header('Content-Disposition: attachment; filename="' . basename($cf) . '"');
header("Content-Length: " . filesize($cf));
header("Content-Type: application/octet-stream");
readfile(realpath($cf));