AAA Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Загрузка файла на ftp-сервер по FTP протоколу на PHP

$file_name	= 'файл для загрузки с путем';
$ftp_server	= 'your_domain.net';
$ftp_port	= 21;
$ftp_file	= 'имя файла с путем на ftp-сервере';
$ftp_user_name	= 'ftp-user';
$ftp_user_pass	= 'ftp-pass';
$error_to	= 'your@email.net'; // E-mail для сообщений об ошибках


$ftp = ftp_connect($ftp_server, $ftp_port, 20);
ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
ftp_pasv($ftp, true); // Passive mode
if(!ftp_put($ftp, $ftp_file, $file_name, FTP_BINARY)){
	// Ошибка загрузки
	mail($error_to,
		'FTP-upload error',
		"There was a problem while uploading {$file_name} to {$ftp_server}.",
		"From: admin@htmlweb.ru\nContent-Type: text/plain; charset=win-1251");
}
ftp_close($ftp);

Вариант загрузки файла на ftp сервер в ассинхронном режиме с автодокачкой

$ftp_server	= 'your_domain.net';
$ftp_user_name	= 'ftp-user';
$ftp_user_pass	= 'ftp-pass';
$file = 'index.php';
$fp = fopen($file, 'r');
$ftp = ftp_connect($ftp_server);
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Начало загрузки вместо FTP_AUTORESUME можно указать ftp_size($ftp,"test.remote") для докачки с места обрыва
$ret = ftp_nb_put($ftp, "test.remote", "test.local", FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

	// производим какие-то действия ...
	echo ".";

	// продолжение загрузки ...
	$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
	echo "При загрузке файла произошла ошибка...";
	exit(1);
}

.

© Copyright 2008-2017 by KDG