Php ftp_put给定错误试图处理的参数不正确
我使用以下语法,试图将当前本地服务器目录中的文件移动到FTP服务器上Php ftp_put给定错误试图处理的参数不正确,php,ftp,copy,Php,Ftp,Copy,我使用以下语法,试图将当前本地服务器目录中的文件移动到FTP服务器上 $source = $csv_filename; $target = fopen("/LocExports/test.csv", "w"); $conn = ftp_connect("ftp.server.co.za") or die("Could not connect"); ftp_login($conn,"username","password"); $upload = ftp_put($conn, $target,
$source = $csv_filename;
$target = fopen("/LocExports/test.csv", "w");
$conn = ftp_connect("ftp.server.co.za") or die("Could not connect");
ftp_login($conn,"username","password");
$upload = ftp_put($conn, $target,$source,FTP_ASCII);
if (!$upload) { echo 'FTP upload failed!'; }
此操作失败,出现错误参数不正确
$csv\u filename
是本地服务器上的文件名。它与php文件位于同一文件夹中
我的目的地是:
http://www.server.co.za/kisv2/xmltest/
任何帮助都将不胜感激
谢谢你一如既往
更新
根据alex的建议,以下是更新的语法:
$csv_filename = 'export-2013-06-13 15:19:48.csv';
$source = $csv_filename; //this is a file in the same directory as my php file. full path is... http://www.server.co.za/kisv2/xmltest/export-2013-06-13 15:19:48.csv
$target = '/LocExports/'.$csv_filename; //full path is... ftp://ftp.hulamin.co.za/LocExports/
$conn = ftp_connect("ftp.server.co.za") or die("Could not connect");
ftp_login($conn, "username", "password");
$upload = ftp_put($conn, $target, $source, FTP_ASCII);
if (!$upload) { echo 'FTP upload failed!'; }
像这样摆脱fopen()
:
$csv_filename='test.csv';
$source='/local/path/to/'.$csv\u文件名;
$target='/LocExports/'.$csv\u文件名;
$conn=ftp_connect(“ftp.server.co.za”)或die(“无法连接”);
ftp_登录($conn,“用户名”,“密码”);
$upload=ftp\U put($conn,$target,$source,ftp\U ASCII);
如果(!$upload){echo'FTP上载失败!';}
我只是想说清楚,因为它被另一个答案的评论所掩盖:
“参数不正确”
是由无效的目标文件名引起的。确保文件名中没有任何无效字符(斜杠、冒号等)。您正在将文件句柄作为第二个参数传递,但ftp\u put需要远程文件名ftp\u put($conn、远程\u文件、本地\u文件、ftp\u ASCII)代码>谢谢,你能详细说明一下吗?什么是文件句柄?谢谢Alex。$target=fopen(…)
将生成一个分配给$target的文件句柄,但将其作为远程文件传递给ftp\u put没有任何意义。我会在第二时间发布答案谢谢Alex,我已经更新了问题中的语法,但仍然会出错。错误是:警告:ftp_put()[function.ftp put]:参数不正确
在$csv_filename
中是什么?(我要完整准确的数值)嗨,亚历克斯。由于文件名中有空格(datetime值),您可能发现了一些问题。我现在已将其更改为exportname.csv
。上载时,文件显示在ftp上,但为空。错误现在是警告:ftp_put()[function.ftp put]:打开ASCII模式数据连接ThanksAddftp_pasv($conn,true)
在您的ftp\u login()
之后,在我的情况下,目标文件名包含冒号(:”),这导致配置了ftp的Windows服务器出现问题