【发布时间】:2015-10-22 20:47:56
【问题描述】:
我正在做一个小项目,使用基于 Web 的查询从 ftp 服务器下载文件。我创建了一个 HTML 表单作为前端,它从用户那里获取 ftp 服务器名称和文件名,然后与 php 脚本交互,以连接 ftp 服务器并下载指定的文件。我将 html 和 php 文件都保存在我的大学网络服务器上。当我直接从服务器的命令行运行 PHP 脚本时,我可以在运行网络服务器的机器上下载文件。但我无法使用网络浏览器在本地计算机上下载文件。
|在本地机器上运行的 Web 浏览器 | |我的 PHP 脚本在 web 服务器机器上运行 | | FTP 服务器 |
<?php
$targetFile = 'file.txt';
$curl = curl_init();
$fh = fopen(dirname(__FILE__) . '/'.$targetFile,'w+b');
if ($fh == FALSE){
print "File not opened<br>";
exit;
}
echo "<br>configuring curl...<br>";
curl_setopt($curl, CURLOPT_URL, "ftp://full_path_name_of_file");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_FILE, $fh);
curl_exec($curl);
echo curl_error($curl);
curl_close($curl);
fclose($fh);
?>
当我从服务器机器的命令行运行此 php 脚本时,文件已成功下载。但是当我使用我的个人计算机从 Web 浏览器调用脚本时,我收到一个错误“文件未打开”。
你能告诉我有什么方法可以通过我的网络浏览器下载文件吗?
谢谢!
【问题讨论】:
-
我假设您在 Linux 服务器上。此文件
file.txt上的 Linux 权限是什么?