PHP FTP загрузка не работает - PullRequest
0 голосов
/ 19 марта 2011

Я пытаюсь автоматически загрузить 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.

1 Ответ

0 голосов
/ 19 марта 2011

В файле конфигурации для PHP есть время ожидания и ограничение на загрузку ... вы можете проверить настройки там.

...