Я пытаюсь автоматически загрузить zip-файл через FTP с помощью PHP, а затем извлечь zip-файл. Однако обо всем по порядку: у меня проблемы с загрузкой zip-файла с помощью PHP-функции ftp_put. Это мой сценарий:
// 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);
Что здесь происходит, так это то, что он (ИНОГДА) загружает ЧАСТЬ файла (всегда одинакового размера; например, 900 КБ) и иногда вообще ничего не загружает. Это как если бы процесс загрузки был прерван выполнением остальной части скрипта, пока загрузка еще не была завершена. Хотя я не уверен, что это является причиной проблемы.
Хотя, это всегда дает мне эту ошибку:
Предупреждение: ftp_put () [function.ftp-put]:
Подключение к порту 38694 в
/home/quicksit/public_html/createacct.php
по линии 93
Где выходной порт всегда отличается и всегда больше, чем 20.000 (например, 30.000-50.000).
Может ли кто-нибудь помочь мне в этом?
Спасибо заранее,
Skyfe.