我目前正在实施一个系统,供用户从ftp下载文件,而不需要ftp客户端。我已经开发了一个登录系统,并成功地设法列出了该文件夹中的文件。但是,我打算使用ftp_get和“另存为”提示进行下载过程。
我已提到http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Databases/Q_23210157.html#mainSection,但所说的解决方案并不是决定性的。
我确实使用了上一个论坛主题中的一个建议,但在执行ftp_get后我收到了一条消息“有问题”。
在任何帮助下我都会非常感激!谢谢 !
//--------------------------- Connects to FTP host ---------------------------------------------
$conn_id = ftp_connect($_COOKIE["process-1"]) or die("Couldn't connect to FTP server");
$login_result = ftp_login($conn_id, $_COOKIE["process-2"], $_COOKIE["process-3"]);
//--------------------------- Validates FTP Logiin (username,password) -------------------------
if(!$login_result) die("FTP Login failed. Contact support @ customercare@strategyinstitute.com");
ftp_pasv($conn_id,true);
$current_dir = ftp_pwd($conn_id);
$chdir = ftp_chdir($conn_id,$_COOKIE["process-5"]);
if(!$chdir) echo "Change Directory failed. Origin = " .$current_dir. "; Destination: ".$_COOKIE["process-5"];
echo ftp_pwd($conn_id) ."<br>";
$server_file = $_GET['file'];
$fp = fopen('php://stdout', 'w+');
if (ftp_get($conn_id, $fp, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
ftp_close($conn_id);
答案 0 :(得分:3)
每个浏览器几乎都是ftp客户端。你为什么重新发明轮子?
在网址区域输入ftp://browsableftpsite.com,转到浏览器中的任何可导航的ftp网站。
答案 1 :(得分:0)
// make the browser download anything you output
header('Content-type: file/binary');
// set the correct filename
header('Content-Disposition: attachment; filename="'.$file.'"');