ftp_put总是返回FALSE

时间:2015-02-16 12:18:15

标签: php mysqli export-to-csv

我从mysql查询生成.csv文件,文件正确保存在创建查询所在的本地服务器上。下一步是获取该新文件并将其上传到不同的FTP位置(完全不同的服务器)。我几乎尝试了一切,但我仍然无法让ftp_put工作。

以下是我的代码中的部分内容:

//Creating the file
$file = fopen(dirname(__FILE__) . "/local_export.csv","w");

$csv_line = array("item1","item2");

fputcsv($file,$csv_line);

fclose($file);

$ftp_server = "00.000.000.00";
$ftp_user_name = "myusername";
$ftp_user_pass = "mypassword";

$file = dirname(__FILE__) . "/local_export.csv";
$remote_file = "remote_export.csv";

// set up basic connection
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

ftp_pasv($conn_id, true);

// login with username and password

if (ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) {
echo "Connected as $ftp_user_name@$ftp_server\n";
} else {
echo "Couldn't connect as $ftp_user_name\n";
}

echo "Current directory: " . ftp_pwd($conn_id) . "\n";

// change the current directory
if (ftp_chdir($conn_id, "transfer")) {
echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else { 
echo "Couldn't change directory\n";
}

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);

就两个文件的位置而言,本地文件位于:

http://subdomain.domain/folder/local_export.csv

远程文件将进入服务器的根目录/文件夹(这也是我唯一可以访问的文件夹)。

对我来说,看起来一切都井井有条,但代码只生成本地文件,总是无法将其保存到远程位置。我是一个相当新的移动文件,所以我很抱歉,如果解决方案在我眼前,但我无法看到它!

非常感谢您的帮助。

编辑: 如下面的评论中所指出的,我应该检查与服务器的连接是否成功。我做过那些检查。连接返回成功(我也通过Filezilla独立尝试,以确保我获得的帐户能够在该位置上传,并且它是。)。所以我想我回到了第一个方向。

0 个答案:

没有答案
相关问题