Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 如何修复文件\u放置\u内容无法打开流:无法设置数据通道_Php_Ftp - Fatal编程技术网

Php 如何修复文件\u放置\u内容无法打开流:无法设置数据通道

Php 如何修复文件\u放置\u内容无法打开流:无法设置数据通道,php,ftp,Php,Ftp,我有一个PHP程序,可以读取和写入FTP服务器上的文件,第一次写入可以,但是当我尝试第二次写入时,我得到了两个不同的错误: 警告:文件\u put\u contents():无法打开流:FTP服务器报告550在第42行的C:\Apache24\htdocs\Directory\Sources\form.php中结束 第二点: 警告:文件\u put\u contents():打开流失败:设置数据通道失败:无法建立连接,因为目标计算机主动拒绝连接。在第42行的C:\Apache24\htdocs\

我有一个PHP程序,可以读取和写入FTP服务器上的文件,第一次写入可以,但是当我尝试第二次写入时,我得到了两个不同的错误:

警告:文件\u put\u contents():无法打开流:FTP服务器报告550在第42行的C:\Apache24\htdocs\Directory\Sources\form.php中结束

第二点:

警告:文件\u put\u contents():打开流失败:设置数据通道失败:无法建立连接,因为目标计算机主动拒绝连接。在第42行的C:\Apache24\htdocs\Directory\Sources\form.php中

然后它只会重复第二个错误

我还没试过,因为我不知道从哪里开始

session_start();

$path = 'ftp://username:password@Directory/map/Sources/data.txt'; //FTP
//$path = 'C:\xampp\htdocs\NPS\Sources\data.txt'; //local path
$stream_options = array('ftp' => array('overwrite' => true));
$stream_context = stream_context_create($stream_options);

$text_file = fopen($path,'r'); //open file
$text_data = file_get_contents($path, filesize($path)); //read out file

//write old data along with new data
file_put_contents($path, $text_data . "text", 0, $stream_context);

//session stop
session_destroy();

我希望代码使用我发送的表单写入我事先填写的数据,但是它只写入一次,然后只显示错误。

当电子邮件不正确时,是否会发生此错误,当它是正确的,或者在两种情况下都是正确的?为什么要在while循环中首先执行电子邮件模式检查?如果删除
文件\u APPEND
,是否会遇到同样的问题?对我来说,该副本的可能副本似乎是一个很好的候选者。如果您的FTP服务器不支持SIZE命令,那么在编写新文件时,这应该不会是一个问题-但是如果您想附加到一个文件,则可能需要知道文件的当前大小,这样可以解释为什么第二次尝试失败。当电子邮件不正确时,是否会发生此错误,当它是正确的,或者在两种情况下都是正确的?为什么要在while循环中首先执行电子邮件模式检查?如果删除
文件\u APPEND
,是否会遇到同样的问题?对我来说,该副本的可能副本似乎是一个很好的候选者。如果您的FTP服务器不支持SIZE命令,那么在编写新文件时,这应该不会是一个问题-但是如果您想附加到一个文件,则可能需要知道文件的当前大小,这样就可以解释为什么第二次尝试失败。