文件在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);
?>
答案 0 :(得分:11)
PHP默认为活动FTP模式。由于无处不在的防火墙/ NAT /代理,现在主动模式几乎不起作用。
您几乎总是需要使用被动模式。
对于该致电ftp_login
之后的ftp_pasv
:
ftp_pasv($nyambungkeftp, true);
请参阅FTP connection modes上的我的文章,了解您通常需要使用被动模式的原因。
答案 1 :(得分:4)
尝试两件事: