PHP文件传输


PHP File Transfer

假设我有一个设备,它知道他们要从我的服务器下载的文件的名称。

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

例如,假设我有一个页面ping.php,它收到一个"something.zip"的get请求

ping.php知道something.zip的位置(服务器文件系统上的某个位置),但我不能允许用户访问文件系统,也不能允许他们知道文件的位置(甚至需要对使用wireshark之类的东西的人隐藏它)。

我该如何解决这个问题?

这可能是一个简单的解决方案,只是我对这些事情不是很熟悉。

如果有什么不同的话,我会在Linux上使用Apache服务器。

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

您可以使用任意数量的示例脚本来进行实际的文件传输。关键是将该文件放在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));