php - ftp_connect PHP 问题

标签 php ftp

我有一个 PHP 脚本,它连接到外部 FTP 服务器,并将 4 个 txt 文件传输到本地服务器。一个文件比其他文件大,但通常最多只有几百 KB。当它运行时,有时会失败,有时会传输部分文件,有时会传输一个文件而不传输其他文件。它永远无法成功传输所有内容。

已检查权限并手动测试 FTP 帐户,表明其正常,连接和传输顺利、快速。我尝试过切换到 ASCII 但没有成功。

我使用此脚本连接的帐户不是 SFTP,但我要传输到的本地服务器仅是 SFTP (1&1)。我不确定这是否相关,并且无法解释间歇性的性质。谢谢。

<?php

ini_set('display_errors', 1);

$ftp_server = "*";
$ftp_user_name = "*";
$ftp_user_pass = "*";

// define some variables
$local_file[0] = 'updates/vebraproperties.txt';
$local_file[1] = 'updates/files.txt';
$local_file[2] = 'updates/rooms.txt';
$local_file[3] = 'updates/vebraclients.txt';

$server_file[0] = 'vebraproperties.txt';
$server_file[1] = 'files.txt';
$server_file[2] = 'rooms.txt';
$server_file[3] = 'vebraclients.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
echo $login_result . '<br/>'; 
for($i = 0; $i <= 3; $i++) {

    // try to download $server_file and save to $local_file
    if (ftp_get($conn_id, $local_file[$i], $server_file[$i], FTP_BINARY)) {
        echo "Successfully written to " . $local_file[$i] . "\n<br/>";
    } else {
        echo "There was a problem \n";
    }
}

// close the connection
ftp_close($conn_id);

?>

最佳答案

您可以尝试使用 passive mode .

您可以在登录后进行设置:

...
// Login
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// Set passive mode
ftp_pasv($conn_id, true); 
...

关于php - ftp_connect PHP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438168/

相关文章:

php - 在 Ubuntu 上安装旧的 PHP 版本

javascript - 提交验证错误的最大和步长

php - 如何防止 LAMP 应用程序中的 SQL 注入(inject)?

amazon-ec2 - 使用FTP-WinSCP获得在我的Amazon EC2 Ubuntu服务器上使用文件的权限

PHP在Linux服务器上获取每个内核的CPU使用率

php - 无法从 Controller 加载 codeigniter 中的表单

c# - 如何从 C# 中的 FTP 请求获取 IP 地址

git - 将配置参数保存到存储库

c - 通过套接字传输数组时遇到问题

c++ - 是否有一个库来解析 FTP LIST 命令的输出?