PHP ftp上传错误


PHP ftp upload error

我遇到了一个将文件上传到ftp服务器的简单PHP脚本的奇怪行为。

我创建了以下精简版的代码,它会产生相同的错误:

<?php
error_reporting(E_ALL);
echo phpversion();
$ftpUrl = "mydomain";
$ftpUserName = "myuser";
$ftpPassword = 'mypass';    
$fileContents = "test"; 
file_put_contents('text.txt', $fileContents);

//open ftp connection
$conn_id = ftp_connect($ftpUrl, 1030);
 if(!$conn_id)
    die('error while connecting to ftp');
$login_result = ftp_login($conn_id, $ftpUserName, $ftpPassword);
 if (!$login_result) 
    die('ftp login failed!');
//switch to passive mode
ftp_pasv($conn_id, true);
 //upload file to ftp
try
{
    $fileToUpload = fopen('text.txt', 'r');
    if($fileToUpload == false)
        die('can''t open file to send!');
    $upload = ftp_fput($conn_id, 'testfile.txt', $fileToUpload, FTP_ASCII);
}
catch(Exception $e)
{
    fclose($fileToUpload);
    ftp_close($conn_id);
    die('Error while uploading to ftp');            
}
fclose($fileToUpload);
ftp_close($conn_id);
if (!$upload) 
    die('ftp upload failed');

?>

在客户端的ftp服务器上,运行脚本时出现以下错误。(错误发生在尝试上传文件,设置连接登录工作时)

Warning: ftp_fput() [function.ftp-fput]: php_connect_nonb() failed: Operation now in progress (115) in {path} on line 38
Warning: ftp_fput() [function.ftp-fput]: Type set to A in {path} on line 38
ftp upload failed
  • 将带有filezilla的同一文件上传到此ftp服务器运行良好
  • 该文件只包含几行文本
  • 当在其他服务器上运行此脚本时,它可以正常工作

服务器使用php版本5.3.28

我已经和这个错误斗争了好几个小时了,它让我发疯了。有线索吗?

Ftp_put()以文件名称为参数,您正在传递文件handle

尝试

ftp_put($conn_id,'testfile.txt', 'test.txt', FTP_ASCII);