我要做的是使用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。
答案 0 :(得分:0)
PHP的配置文件中存在超时和上传限制...您可能需要检查那里的设置。