не заливается файл на ftp через php

Статус
В этой теме нельзя размещать новые ответы.

painsource

Постоялец
Регистрация
12 Июл 2009
Сообщения
64
Реакции
8
Вот на одном хостинге пытаюсь положить файлы на фтп:
PHP:
$conn_id = ftp_connect($ftp_server, 21);
	
	$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
	ftp_pasv($conn_id, true);
	
	if (ftp_put($conn_id, "test.mpg", "/tmp/test.mpg", FTP_BINARY)) echo "Загружен файл!\n";
	else echo "Проблема закачивания!\n";
	
	ftp_close($conn_id);
на что вываливаются варнинги:

Warning: ftp_fput() [function.ftp-fput]: php_connect_nonb() failed: Operation now in progress (115) in /home/vol10/byethost7.com/b7_4016994/htdocs/curltest.php on line 69

Warning: ftp_fput() [function.ftp-fput]: Entering Passive Mode (85,17,146,202,235,167) in /home/vol10/byethost7.com/b7_4016994/htdocs/curltest.php on line 69

Погуглил эти варнинги, но конкретного ответа не нашел... Возникает два вопроса:
1. Возможно это файервол на хостинге не пропускает, но как узнать точно?
2. Возможоли загрузить на сервер файлы другим способом?
 
Вот тут вроде как аналогичная проблема
Для просмотра ссылки Войди или Зарегистрируйся

да я находил это, и поэтому предположил на моем хостинге закрывают исходящие соединения...
Тогда задам вопрос по другому:
можно ли как то обойти файервол?
 
//turn off passive mode transfers
ftp_pasv ($conn_id, false);
 
Погуглил эти варнинги, но конкретного ответа не нашел... Возникает два вопроса:
1. Если фаром или другим клиентом заходите на фтп сервер, значит пропускает!
2. Возможно, через аплоад форму (HTTP)

У Вас пишет ошибку, что должен передавать данные в пассивном режиме ("Entering Passive Mode (85,17,146,202,235,167)")!

Используйте функцию:
PHP:
ftp_pasv ( $fp , TRUE);

вот нормальный класс по работе с FTP с примером работы:
Для просмотра ссылки Войди или Зарегистрируйся

темы для изучения:
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

Правила загрузки файлов на сервер:
1) При загрузке по FTP загружайте текстовые, html, php файлы в режиме TEXT, остальные - в режиме BIN
2) Не используйте кириллицу в именах файлов
3) Используйте для написания имен файлов одинаковый регистр букв - буквы в разных регистрах отличаются, и следовательно "INDEX.HTML", "Index.html" и "index.html" - это 3 разных файла
4) При обращении к корневой странице Для просмотра ссылки Войди или Зарегистрируйся сайта загружается индексный файл. По умолчанию индексными файлами выступают файлы: index.html, index.htm, index.php, index.shtml.
 
Можно curl попробовать
 
Подскажите скрипт, что бы с сервера на фтп заливать.
 
Подскажите скрипт, что бы с сервера на фтп заливать.

Попробуй как то так

PHP:
<?
$path=GetCWD()."/files";
if(!file_exists($path))
die("<b>Пожалуйста, создайте папку <font color=red>".$path."</font> и <a href=?>повторите попытку загрузить файл</a>.</b>");
if(empty($_FILES['UserFile']['tmp_name']))
echo"<form method=post enctype=multipart/form-data>
Выберите файл: <input type=file name=UserFile>
<input type=submit value=Отправить>
</form>";
elseif(!is_uploaded_file($_FILES['UserFile']['tmp_name']))
die("<b><font color=red>Файл не был загружен! Попробуйте <a href=?>повторить попытку</a>!</font></b>");
else{
if(@!copy($_FILES['UserFile']['tmp_name'],$path.chr(47).$_FILES['UserFile']['name']))
die("<b><font color=red>Файл не был загружен! Попробуйте <a href=?>повторить попытку</a>!</font></b>");
else
echo "<center><b>Файл \"<font color=red>".$_FILES['UserFile']['name']."\"</font> успешно загружён на сервер!</font></b></center>"."<hr>".
"Тип файла: <b>".$_FILES['UserFile']['type']."</b><br>".
"Размер файла: <b>".round($_FILES['UserFile']['size']/1024,2)." кб.</b>".
"<hr><center><a href=?>Загрузить ещё один файл!</a></center>";
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху