我的php脚本无法正确上载ftp文件
在下面的php代码中,我试图上传一个文件。我从一篇关于这个主题的帖子中改编了这个代码。我必须上传的文件有一个序列号作为名称的一部分,它每天递增。因此,我使用glob函数将文件名放入一个数组中,并在数组中循环。脚本可以工作,但在服务器上创建的文件为空。我看到了对我的问题的回答,即使用我的php脚本无法正确上载ftp文件,php,Php,在下面的php代码中,我试图上传一个文件。我从一篇关于这个主题的帖子中改编了这个代码。我必须上传的文件有一个序列号作为名称的一部分,它每天递增。因此,我使用glob函数将文件名放入一个数组中,并在数组中循环。脚本可以工作,但在服务器上创建的文件为空。我看到了对我的问题的回答,即使用 ftp_pasv($conn_id, true); 但是我的剧本里有这个,它对我不起作用。我希望有人能帮助我找到问题所在。 我在Ubuntu18.04中工作,也连接到一台unix机器。 作为一个额外的问题,我将如
ftp_pasv($conn_id, true);
但是我的剧本里有这个,它对我不起作用。我希望有人能帮助我找到问题所在。
我在Ubuntu18.04中工作,也连接到一台unix机器。
作为一个额外的问题,我将如何删除传输后的本地文件。
谢谢你的理解。
代码如下
#!/usr/bin/php
<?php
//define some variables
$ftp_server='server-address';
//set up basic connection
$conn_id = ftp_connect($ftp_server);
$ftp_user_name="myuser";
$ftp_user_pass="mypasswd";
$remote_path = "/";
$local_path="./";
chdir($local_path);
$local_file = glob("$local_path/OBS*");
$arrlength=count($local_file);
$cur_dir= getcwd();
echo $cur_dir . "\n";
//exit;
//login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
print_r(ftp_nlist($conn_id,"."));
for($x=0;$x<$arrlength;$x++){
//upload $local_file and save to $remote_path
if(ftp_put($conn_id, "$local_path/$local_file[$x]", $remote_path, FTP_ASCII)){
echo "Successfully written to $remote_path)\n";
}
else {
echo "There was a problem\n";
}
}
//close the connection
ftp_close($conn_id);
?>
#/usr/bin/php
像这样试试
if(ftp_put($conn_id, "$local_path/$local_file[$x]", $remote_path, FTP_BINARY)){
echo "Successfully written to $remote_path)\n";
}
您是否收到任何错误或类似错误?脚本工作但在服务器上创建的文件为空是什么意思?不是将文件复制到远程服务器吗?没有错误,只有消息“已成功写入/”。我说这个脚本之所以能工作,是因为这个消息以及服务器上出现了一个具有权限的文件,但该文件的大小为零,并且确实是空的。我是说一个具有正确名称的文件是否真的没有人可以上传一个不具有此脚本的空文件?我已经尝试了FTP_二进制文件。它给出了相同的结果。我试图发送三个文件。这三个名称都出现在服务器上,并且都是空的。