Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ftp_put给定错误试图处理的参数不正确_Php_Ftp_Copy - Fatal编程技术网

Php ftp_put给定错误试图处理的参数不正确

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,

我使用以下语法,试图将当前本地服务器目录中的文件移动到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!'; }
此操作失败,出现错误
参数不正确

$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模式数据连接
ThanksAdd
ftp_pasv($conn,true)
在您的
ftp\u login()
之后,在我的情况下,目标文件名包含冒号(:”),这导致配置了ftp的Windows服务器出现问题