Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: FTP: загрузить только первые 64Кб файла
 
 автор: aievengo   (27.01.2012 в 11:11)   письмо автору
 
 

Добрый день! Есть вопрос. Необходимо написать скрипт, который будет подключатся к фтп серверу и скачивать первые и последние 64 байта у каждого файла. Все почти готово, кроме одного маленького момента. Каким образом можно скачать первые 64 байта файла, не скачивая при этом его целиком. Для последних 64 байт все просто - есть команда REST, которая устанавливает байт, с которого нужно продолжить скачивание или закачивание файла (REST 1234). А как быть с началом файла? Как вовремя остановить загрузку?

  Ответить  
 
 автор: cheops   (27.01.2012 в 13:27)   письмо автору
 
   для: aievengo   (27.01.2012 в 11:11)
 

Вы ведь используете асинхронную загрузку данных с сервера (ftp_nb_fget())? Может просто покинуть цикл, когда будет загружено достаточно данных?

  Ответить  
 
 автор: aievengo   (27.01.2012 в 14:12)   письмо автору
 
   для: cheops   (27.01.2012 в 13:27)
 

Я использую конструкцию
$sock = fsockopen(server, port);
fputs($sock, "RETRt\r\n");
$result = fgets($sock1);
По условию нельзя использовать php функции для работы с ftp, только через сокеты.

  Ответить  
 
 автор: Sfinks   (27.01.2012 в 17:30)   письмо автору
 
   для: aievengo   (27.01.2012 в 14:12)
 

может
$result = fread($sock1,64);
?

  Ответить  
 
 автор: cheops   (27.01.2012 в 17:32)   письмо автору
 
   для: aievengo   (27.01.2012 в 14:12)
 

Функция fgets() имеет второй необязательный параметр, в котором вы можете указать, сколько байт вы желаете принять.

  Ответить  
 
 автор: aievengo   (28.01.2012 в 14:45)   письмо автору
 
   для: cheops   (27.01.2012 в 17:32)
 

Большое спасибо. Запнулся на мелочи.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования