ftp_put给出错误尝试处理时参数不正确


ftp_put giving error The parameter is incorrect wen trying to process

我有以下语法,我试图将当前本地服务器目录中的文件移动到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,FTP_ASCII);
if (!$upload) { echo 'FTP upload failed!'; }

此操作失败,错误为The parameter is incorrect

$csv_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!'; }

只是为了清楚,因为它被隐藏在另一个答案的注释中:

"The parameter is incorrect"是由无效的目标文件名引起的。请确保您的文件名中没有任何无效字符(斜杠,冒号等)。

像这样去掉fopen():

$csv_filename = 'test.csv';
$source = '/local/path/to/'.$csv_filename; 
$target = '/LocExports/'.$csv_filename;
$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!'; }