Русское сообщество по скриптингу

[INC] HTTP

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

[INC] HTTP

Сообщение DJ_WEST » 31 окт 2011, 15:29

Автор: Bugsy
Перевод: DJ_WEST

Описание:
Данный include предоставляет возможность скачивания файлов через HTTP протокол. Максимальное количество одновременных закачек ограничено до 10.

Функции:
HTTP_DownloadFile(const szRemoteFile[], const szLocalFile[])
Описание:
Скачивание файла через HTTP протокол.

Аргументы:
szRemoteFile - ссылка на файл, к примеру: "http://www.amx-x.ru/logo.jpg"
szLocalFile - имя файла, под которым будет сохранен загруженный файл (директория по умолчанию - папка мода), к примеру: "logo.jpg"

Возвращаемое значение:
Функция возвращает уникальное числовое значение (id загрузки), если загрузка началась успешно или 0, если нет.

HTTP_AbortTransfer(iDownloadID, bool:bDeleteLocalFile=true)
Описание:
Отмена активной загрузки файла.

Аргументы:
iDownloadID - уникальный id загрузки, возвращаемый от функции HTTP_DownloadFile и который хранится в forward функции HTTP_Download.
bDeleteLocalFile - удалять локальный файл после отмены загрузки. По умолчанию: true.

Возвращаемое значение:
1 - если успешно, 0 - если нет.

HTTP_Download(const szFile[], iDownloadID, iBytesReceived, iFileSize, bool:bTransferComplete)
Описание:
Отслеживание прогресса загрузки файла (forward функция).

Аргументы:
szFile - локальное имя файла, под которым он будет сохранен.
iDownloadID - уникальный id загрузки.
iBytesReceived - скачанное количество байтов.
iFileSize - размер скачиваемого файла.
bTransferComplete - загрузка завершена или нет.

Необходимые модули:
  • engine
  • sockets

Пример плагина:
[pawn]
  1. #include <amxmodx>

  2. #include <http>

  3.  

  4. new const Version[] = "0.3";

  5.  

  6. public plugin_init()

  7. {

  8.     register_plugin("HTTP Test" , Version , "bugsy");

  9.    

  10.     // Регистрируем команду test для тестирования загрузки

  11.     register_concmd("test" , "DownloadFile");

  12. }

  13.  

  14. // Функция загрузки файла

  15. public DownloadFile()

  16. {

  17.     HTTP_DownloadFile( "http://forums.alliedmods.net/images/misc/am_banner.jpg" , "amxmodx.jpg" );

  18. }

  19.  

  20. // Отслеживание процесса загрузки через forward функцию

  21. public HTTP_Download( const szFile[] , iDownloadID , iBytesRecv , iFileSize , bool:TransferComplete )

  22. {

  23.     // Если загрузка завершена

  24.     if ( TransferComplete )

  25.     {

  26.         server_print( "%s download complete!" , szFile );

  27.     }

  28.     // Если файл в процессе загрузки

  29.     else

  30.     {

  31.         server_print( "File=[%s] DownloadID=%d BytesTransferred=%d iSize=%d" , szFile , iDownloadID , iBytesRecv , iFileSize );

  32.     }

  33. }  
[/pawn]
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: [INC] HTTP

Сообщение hmn3r^Ist » 28 май 2012, 18:28

как вариант можно и последнии строки сравнивать, или символы
Аватара пользователя
hmn3r^Ist
 
Сообщения: 900
Зарегистрирован: 19 апр 2012, 16:24
Откуда: Petersburg
Благодарил (а): 82 раз.
Поблагодарили: 158 раз.

Re: [INC] HTTP

Сообщение Contra » 28 май 2012, 18:42

А для отправки файлов с клиента на веб сервер можно ?
Аватара пользователя
Contra
 
Сообщения: 183
Зарегистрирован: 10 апр 2011, 22:34
Откуда: Из Самары.
Благодарил (а): 47 раз.
Поблагодарили: 14 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6
VIP Private 0.9b

Re: [INC] HTTP

Сообщение Chuvi » 28 май 2012, 19:10

сделай сейчас так:
создай текстовый файл с таким содержимым
Код: Выделить всё
ABCDEFGHIJKLMNOPQRSTUWVXYZabcdefghijklmnopqrstuvwxuzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя!"№;%:?*()_+~`!@#$%^&*()123456789

И попробуй его скачать. Просто таким макаром проще проследить, портится ли файл при передаче или нет.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: [INC] HTTP

Сообщение PRoSToTeM@ » 28 май 2012, 23:17

WinMerge
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

Re: [INC] HTTP

Сообщение trololost » 09 ноя 2012, 04:04

не пашет не разу, а идея была хорошая. может знатоки допилят?
[Не принимаю заказы]
Аватара пользователя
trololost
 
Сообщения: 923
Зарегистрирован: 05 ноя 2011, 02:25
Благодарил (а): 104 раз.
Поблагодарили: 358 раз.

Пред.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4