PHP FTP上传不起作用

时间:2011-03-19 20:32:51

标签: php upload ftp

我要做的是使用PHP通过FTP自动上传zip文件,然后提取zip文件。首先要做的事情是:我在使用PHP的ftp_put函数上传zip文件时遇到了麻烦。这是我的剧本:

// set up basic connection
$conn_id = ftp_connect($ftp_server); 

// login with username and password
$login_result = ftp_login($conn_id, $user, $pass); //<!--same as cPanel account user and pass?

// check connection
if ((!$conn_id) || (!$login_result)) { 
    echo "FTP connection has failed!";
    echo "Attempted to connect to $ftp_server for user $user"; 
    exit; 
} else {
    echo "Connected to $ftp_server, for user $user";
}

// server & file info
$file = 'phpBB3.zip';
$ftp_root = '/public_html/';
$site_root = $_SERVER['DOCUMENT_ROOT'].'/scripts/';

// >>>HERE<<<
// upload the file
// >>>HERE<<<
$upload = ftp_put($conn_id, $ftp_root .$file, $site_root . $file, FTP_BINARY);

// check upload status
if (!$upload) { 
    echo "FTP upload has failed!";
} else {
    echo "Uploaded $file to $ftp_server as $file";
}

// unzip the uploaded file (from FTP?)
$unzip = shell_exec("unzip {$file}"); //<!-- how to do this through FTP uploaded files?

// close the FTP stream 
ftp_close($conn_id); 

这里发生的是它(SOMETIMES)上传文件的一部分(总量相同;如900 kB),有时根本不上传任何内容。就好像上传过程被上传尚未完成时正在执行的其余脚本中断一样。虽然我不确定这是否是问题的原因。

虽然,它总是给我这个错误:

  

警告:ftp_put()[function.ftp-put]:   连接到38694端口   /home/quicksit/public_html/createacct.php   第93行

输出端口始终不同且始终大于20.000(如30.000-50.000)。

有人可以帮我解决这个问题吗?

先谢谢了, Skyfe。

1 个答案:

答案 0 :(得分:0)

PHP的配置文件中存在超时和上传限制...您可能需要检查那里的设置。