PHP脚本允许用户从远程FTP服务器下载文件[重复]
Posted
技术标签:
【中文标题】PHP脚本允许用户从远程FTP服务器下载文件[重复]【英文标题】:PHP script to allows user to download file from remote FTP Server [duplicate] 【发布时间】:2021-04-08 19:29:24 【问题描述】:我有一个带有公共 IP 的 FTP 服务器,用于与其他无需身份验证即可下载的用户共享文件(例如ftp://88.88.111.111/file.txt
)。
您可能知道,最近 Google Chrome 开始过滤 FTP 连接。 (我知道有一些解决方法,但我对替代解决方案感兴趣。)
我想要实现的是来自托管我的网站(并且支持 HTTPS 连接)的服务器的 php 接口,因此用户可以转到 https://www.mywebsite.com/interface.php?get=file.txt
,他们实际上会在他们的计算机上下载从 @ 获取的文件987654325@。
因此,用户不会使用任何 FTP 连接,这完全是隐藏的。 (不知道有没有把我的想法解释清楚)
我不是这方面的专家,所以我想了解它是否可以完成,以及您是否有一些关于如何实施的指示。
提前致谢!
【问题讨论】:
有几种方法可以做到这一点。如果 FTP 服务器和 web 服务器在同一台机器上,你可以剪掉 web 版本的 FTP 部分,然后看磁盘。如果它们在不同的机器上,您仍然可以像以前一样执行相同的操作,但使用Flysystem 之类的抽象。否则,您可以使用 FTP functions 构建自己的,这不是很漂亮,只是为了警告您。 它们在不同的机器上。谢谢你的建议,我会看看的! 【参考方案1】:你可以这样做从 FTP 服务器下载文件到网络服务器,然后让用户从网络服务器下载文件。
$file_url = "ftp://88.88.111.111/" . $_GET['file'];
$file_tmp = file_get_contents($file_url);
file_put_contents("/var/www/html/files/ . $file_tmp);
$download_url = "https://www.mywebsite.com/files/" . $_GET['file'];
header('Location: $download_url');
exit;
【讨论】:
无需将文件存储在网络服务器上。见Download file via PHP script from FTP server to browser with Content-Length header without storing the file on the web server。 感谢大家的帮助!我只需 10 行代码就能做到这一点以上是关于PHP脚本允许用户从远程FTP服务器下载文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章