PHP 文件传输
PHP File Transfer
假设我有一个设备知道他们想从我的服务器下载的文件的名称。
如何在不让设备访问文件系统的情况下将所述文件传输到该设备?
例如,假设我有一个页面 ping.php,它接收到 "something.zip"
的获取请求
ping.php 知道 something.zip 的位置(在服务器文件系统的某处),但我不能允许用户访问文件系统,或让他们知道的位置文件(它甚至需要使用 wireshark 之类的东西对某人隐藏)。
我该如何解决这个问题?
这可能是一个简单的解决方案,我只是对这些问题不是很精通。
如果有任何不同,我将在 Linux 机器上使用 Apache 服务器。
当文件位于无法通过 Web 访问的文件夹中时,您可以创建 PHP 脚本来促进文件传输。这就是我通常在系统上处理文件下载的方式。
您可以使用任意数量的示例脚本来进行实际的文件传输。关键是将该文件放在可通过网络访问的文件系统之外。
为了完整起见,下面是我过去在 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));
假设我有一个设备知道他们想从我的服务器下载的文件的名称。
如何在不让设备访问文件系统的情况下将所述文件传输到该设备?
例如,假设我有一个页面 ping.php,它接收到 "something.zip"
的获取请求ping.php 知道 something.zip 的位置(在服务器文件系统的某处),但我不能允许用户访问文件系统,或让他们知道的位置文件(它甚至需要使用 wireshark 之类的东西对某人隐藏)。
我该如何解决这个问题?
这可能是一个简单的解决方案,我只是对这些问题不是很精通。
如果有任何不同,我将在 Linux 机器上使用 Apache 服务器。
当文件位于无法通过 Web 访问的文件夹中时,您可以创建 PHP 脚本来促进文件传输。这就是我通常在系统上处理文件下载的方式。
您可以使用任意数量的示例脚本来进行实际的文件传输。关键是将该文件放在可通过网络访问的文件系统之外。
为了完整起见,下面是我过去在 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));