Php 如何修复文件\u放置\u内容无法打开流:无法设置数据通道
我有一个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中 然后它只会重复第二个错误 我还没试过,因为我不知道从哪里开始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\
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命令,那么在编写新文件时,这应该不会是一个问题-但是如果您想附加到一个文件,则可能需要知道文件的当前大小,这样就可以解释为什么第二次尝试失败。