PHP ftp_put失败,出现"警告:ftp_put():PORT命令成功"

Jun*_*din 7 php ftp

文件在FTP服务器上创建,但总是大0字节.请给我一个解决方案,以便文件上传成功.

我一直收到这个警告:

警告:ftp_put():PORT命令在第30行的C:\ xampp\htdocs\mailing\teskirim-file-simpan2.php
中成功完成FTP上传失败!

在此输入图像描述

我的脚本是:

<?php
$ftp_server = "********";
$ftp_serverpath = "ftp.".$ftp_server;
$ftp_user_name = "********";
$ftp_user_pass = "***********";
$email_dir = "*******@*********";

$nyambungkeftp = ftp_connect($ftp_server);
if (false === $nyambungkeftp) {
    throw new Exception('Unable to connect');
}

$loggedInnyambungkeftp = ftp_login($nyambungkeftp,  $ftp_user_name,  $ftp_user_pass);
if (true === $loggedInnyambungkeftp) {
    echo 'Success!';
} else {
    throw new Exception('Unable to log in');
}

if ((!$nyambungkeftp) || (!$loggedInnyambungkeftp)) { 
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
        exit; 
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name";
    }

// upload the file
$dest = 'detectip.txt';
$source = 'C:\xampp\htdocs\persuratan\file2\detectip.txt';

echo $dest;
echo $source;
$upload = ftp_put($nyambungkeftp, $dest, $source, FTP_ASCII); 


// check upload status
if (!$upload) { 
        echo "FTP upload has failed!";
    } else {
        echo "Uploaded $source_file to $ftp_server as $destination_file";
    }

// close the FTP stream 
ftp_close($nyambungkeftp); 

?>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ryl 14

PHP默认为活动FTP模式.由于无处不在的防火墙/ NAT /代理,这些天活动模式几乎不起作用.

您几乎总是需要使用被动模式.

对于那个电话ftp_pasv之后ftp_login:

ftp_pasv($nyambungkeftp, true);
Run Code Online (Sandbox Code Playgroud)

请参阅关于FTP连接模式的文章,了解您通常需要使用被动模式的原因.


小智 7

尝试两件事:

  1. 尝试 FTP_BINARY 而不是 FTP_ASCII
  2. 尝试在此处使用被动模式文档