【发布时间】:2013-08-07 16:37:03
【问题描述】:
我正在尝试编写一个 PHP 页面,该页面采用 GET 变量(它是 FTP 中的文件名)并下载它。但是,它似乎不起作用。运行 echo 语句时,函数本身 (ftp_get) 返回 TRUE,但没有其他任何反应,控制台中也没有错误。
<?php
$file = $_GET['file'];
$ftp_server = "127.0.0.1";
$ftp_user_name = "user";
$ftp_user_pass = "pass";
// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_get($conn_id, $file, $file, FTP_BINARY)) {
echo "Successfully written to $file\n";
} else {
echo "There was a problem\n";
}
?>
理想情况下,我只需将它们链接到:ftp://example.com/TestFile.txt,它会为他们下载文件,但是,它只会在浏览器中向他们显示文件的内容,而不是下载它。
我已经通过 PHP 手册站点阅读了 FTP 函数,并且我相信 ftp_get 是我想使用的正确的。
是否有更简单的方法可以做到这一点,或者只是我忽略了一些事情?
【问题讨论】:
-
来自手册:“ftp_get() 从 FTP 服务器检索远程文件,并将其保存到本地文件中。”本地是指运行 PHP 的机器,而不是客户端的桌面机器。不知道有没有比读取保存的文件输出给用户更简单的方法。
-
error_reporting(E_ALL); ini_set('display_errors', '1');开启了吗? -
@Jeffman 没有办法简单地从 FTP 获取文件以下载到用户的 PC 上吗?这似乎不是一个牵强附会的概念。
-
@JohnnyJS 是的,没有错误。它只是将文件写入运行脚本的目录,但我希望最终用户将其下载到他们的 PC 而不是 FTP 的 PC。
-
你可以试试:
echo file_get_contents(ftp_get($conn_id, $file, $file, FTP_BINARY));吗?
标签: php javascript html ftp