假设我的设备知道要从我的服务器下载的文件的名称。
如何在不让设备访问文件系统的情况下将所述文件传输到该设备?
例如,假设我有一个页面ping.php,它接收" something.zip"
的获取请求ping.php知道something.zip的位置(在服务器的文件系统的某个地方),但是我不能允许用户访问文件系统,或者让他们知道的位置该文件(甚至需要使用wireshark之类的东西隐藏它)。
我该如何解决这个问题?
这可能是一个简单的解决方案,我对这些问题并不是非常精通。
如果它有所不同,我将在Linux机器上使用Apache服务器。
答案 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));