Вверх ↑
Этот топик читают: Гость
Ответов: 141
Рейтинг: 11
#1: 2013-04-13 14:09:20 ЛС | профиль | цитата
Здравствуйте!
Перерыл весь форум, пересмотрел всю справку, но так и не могу понять как реализовать загрузку файла на сайты..
Вот к примеру сайт: https://www.virustotal.com/ru/
На него требуется загрузить файл и выдать дальнейший результат...
Прошу помощи, совсем ничего сделать не смог.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1073
Рейтинг: 76
#2: 2013-04-13 17:14:18 ЛС | профиль | цитата
CITRUS писал(а):
Перерыл

Не верю
А HTTP_FileUpload разве не подходит?
http://hiasm.com/xf//getfile/15034

карма: 0

0
Ответов: 141
Рейтинг: 11
#3: 2013-04-13 18:59:32 ЛС | профиль | цитата
tom-it писал(а):

Не верю
А HTTP_FileUpload разве не подходит?
http://hiasm.com/xf//getfile/15034

Я схемы эти видел... Я не понимаю как использовать
Как POST составляется к примеру
карма: 0

0
Ответов: 1073
Рейтинг: 76
#4: 2013-04-13 20:36:27 ЛС | профиль | цитата
CITRUS писал(а):
Как POST составляется к примеру

HTTP снифер себе на вооружение и смотрите как и что там передается. Ну а далее по аналогии свой запрос составляйте.
карма: 0

0
Ответов: 141
Рейтинг: 11
#5: 2013-04-14 11:45:41 ЛС | профиль | цитата
Скачал HttpAnalyzerStdV5...
Заливаю файл на http://rghost.ru/
Во всём что поймал сниффер не могу найти ничего даже похожего для заполнения поля URL
Всё что мне непонятно:
1) Что за список переменных в POST запросе
2) Как выловить, или же как понять что именно надо вписывать в строку URL в компоненте HTTP_FileUpload
3) В поле Name требуется вписать строку, где хранится название залитого файла, как я понял это есть в исходном коде страницы, в http://rghost.ru/ это просто file, это так?
Прошу ответить на эти вопросы.

карма: 0

0
Ответов: 5446
Рейтинг: 323
#6: 2013-04-14 12:40:15 ЛС | профиль | цитата
1) Поля (input) формы
2) Аттрибут "action" тега "form"
3) Аттрибут "name" тега "input", у которого type=file. В случае rghost - да, file.

карма: 1

0
Ответов: 141
Рейтинг: 11
#7: 2013-04-14 13:13:12 ЛС | профиль | цитата
iarspider писал(а):
1) Поля (input) формы
2) Аттрибут "action" тега "form"
3) Аттрибут "name" тега "input", у которого type=file. В случае rghost - да, file.

Теперь понял второе и третье, но первое так и не понимаю
Единственное что я нашёл о input на rghost.ru, это какое то поле "s"
Но явно ведь это совсем не то...
карма: 0

0
Ответов: 1073
Рейтинг: 76
#8: 2013-04-14 13:13:58 ЛС | профиль | цитата
CITRUS писал(а):
Что за список переменных

Значения которые меняются при каждой загрузке файла. К примеру ID, autor(если пользователь зарегистрирован) файла и т.п.
Если память не изменяет то эти переменные заменяются на указанные значения. К примеру в запросе конфигурирует слово ID , это слово добавляется в список и элемент подставляет указанное Вами значение.

CITRUS писал(а):
что именно надо вписывать в строку URL

Часть адреса страницы которая обрабатывает запрос. Страница типа http://rghost.ru/тра-ля-ля

URL будет /тра-ля-ля, а host будет rghost.ru
CITRUS писал(а):
ак я понял это есть в исходном коде страницы, в http://rghost.ru/ это просто file

Имя файла компонент вписывает сам и его в большинстве случаев, больше нигде не нужно вписывать, за исключением если этого не требует конкретный сайт(сервер).

Вот здесь я когдато расписывал все действия попорядку для сайта webfile.ru. Можете посмотреть что и как. Правда в том примере воспроизводится последовательность какбудто вы отправляете файл через браузер. В большинстве случаев нет необходимости в эмуляции всех запросов. Если посмотрите мой последний пример то в конечном блоке написано
Далее надо отправлять последний запрос(GET),
но учитывая что конечная ссылка состоит из строк http://webfile.ru/ + значение placed?id=
то ее можно сформировать уже на етом етапе.
Ето говорит о том, что последовательность и количество запросов индивидуально для каждого конкретного случая.

Если дела обстоят "ребром" могу, за умеренное вознаграждение сделать програмку для указанного сайта. Ну а если дело в принципе, также самостоятельно все сделать, по изучайте примеры. При возможности поможем.
карма: 0

0
Ответов: 141
Рейтинг: 11
#9: 2013-04-14 13:24:09 ЛС | профиль | цитата
tom-it писал(а):
Если дела обстоят "ребром" могу, за умеренное вознаграждение сделать програмку для указанного сайта. Ну а если дело в принципе, также самостоятельно все сделать, по изучайте примеры. При возможности поможем.

Понимаете, эта тема создана что бы попытаться понять как составлять запрос и сделать программу способную заливать файл на какой либо файлообменник, для упрощения так сказать, но всё это с целью просто изучить компонент...
А сейчас я запутался окончательно.
iarspider сказал, что URL находится по "2) Аттрибут "action" тега "form"" и как я понял это вышло http://phonon.rghost.ru/files, далее Вы говорите что это не так, что должна быть ссылка другого вида...
А через сниффер ссылок подобного рода я вообще не встретил.
карма: 0

0
Разработчик
Ответов: 26069
Рейтинг: 2121
#10: 2013-04-14 13:38:53 ЛС | профиль | цитата
Вот еще примерчик есть для радикала, может пригодится

Add(MainForm,13302918,154,126)
{
Width=706
Height=678
}
Add(TCP_Client,10132356,455,238)
{
Port=80
link(onRead,7740039:doCharset,[])
}
Add(HTTP_FileUpload,9943678,252,245)
{
URL="http://www.radikal.ru/action.aspx"
Name="attach"
VarsList=#6:upload|12:GEO_POINT_ID|1:O|1:M|0:|
Point(VarsValue)
Point(Host)
link(onBuild,11726978:doEvent1,[])
link(VarsValue,765973:GetData,[])
link(Host,15429254:Var1,[(279,201)])
}
Add(Hub,11726978,343,245)
{
link(onEvent1,820334:doIPByHost,[(375,251)(375,230)])
link(onEvent2,10132356:doSend,[])
}
Add(Button,5706670,154,245)
{
Left=115
Top=55
link(onClick,15167720:doExecute,[])
}
Add(Host,820334,392,217)
{
link(onIPByHost,10132356:doOpen,[(440,230)(440,244)])
link(HostName,15429254:Var2,[])
}
Add(Memory,2183037,399,154)
{
Default=String(radikal.ru)
}
Add(ODialog,15167720,203,245)
{
link(onExecute,9943678:doBuild,[])
}
Add(Charset,7740039,504,238)
{
Type=7
link(onCharset,5170041:doSearch,[])
}
Add(EventFromData,765973,266,126)
{
link(onEvent,8054435:doGetIndex,[])
}
Add(StrList,8054435,315,84)
{
Strings=#6:upload|12:GEO_POINT_ID|1:O|1:M|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,11911447:doGetString,[(373,97)(373,132)])
}
Add(StrList,11911447,399,84)
{
Strings=#3:yes|0:|3:yes|3:500|0:|
Point(doGetString)
Point(onGetString)
link(onGetString,765973:doData,[(449,97)(449,64)(254,64)(254,132)])
}
Add(BlockFind,5170041,553,238)
{
IncludeBlock=1
StartBlock="input id="input_link_1" value=""
EndBlock="""
link(onSearch,12155821:doText,[])
}
Add(Edit,12155821,602,238)
{
Left=175
Top=55
Width=465
}
Add(GetDataEx,15429254,399,196)
{
link(Data,2183037:Value,[])
}

карма: 22

0
Ответов: 5446
Рейтинг: 323
#11: 2013-04-14 14:01:41 ЛС | профиль | цитата
CITRUS, плохо искали. rghost.ru перенаправляет на rghost.net, и на нужной странице две формы (начинается с <form, заканчивается </form>). Одна из низ - поиск, вторая - как раз загрузка файла.

Про URL. Любая ссылка состоит из (грубо говоря) трёх частей: протокол (http://), хост (phonon.rghost.ru) и путь (/files). "Хост" идёт в свойство host, а путь - в свойство URL. Потокол отбрасывется.


карма: 1

0
Ответов: 1073
Рейтинг: 76
#12: 2013-04-14 14:07:04 ЛС | профиль | цитата
CITRUS писал(а):
А сейчас я запутался окончательно.

Извините если запутал. Просто давно не делал чего то подобного и не могу 100% утверждать что все вышенаписанное мною правильно. Потому и выделил
tom-it писал(а):
Если память не изменяет

Сейчас немного занят другими делами что либо проверять и анализировать запросы просто напросто нету времени.
Возможно iarspider смотрел запросы или в ближайшем прошлом сталкивался с чемто подобным почему и написал о конкретных местах кода страницы.
Я же дал примерное описание основываясь на корректность своей памяти. Так что думаю лучше прислушаться к его совету, а еще лучше тщательно анализировать пакеты.
Если в ближайшее время сами не разберетесь, то постараюсь в свободное время поковыряться и привести более корректный пример. Сейчас же извиняйте, воскресенье всетаки, отдыхаем мы сегодня.
карма: 0

0
Ответов: 141
Рейтинг: 11
#13: 2013-04-14 15:51:02 ЛС | профиль | цитата
Так, как я понял и что вышло:
URL: /files
Host: muon.rghost.ru
Name: file
И всё же не понимаю что такое VarList
Пока что вот что у меня выходит:
Add(MainForm,9452082,161,301)
{
Width=865
Height=159
}
Add(HTTP_FileUpload,3277775,357,476)
{
URL="/files"
Host="muon.rghost.ru"
Name="file"
Point(VarsValue)
Point(doVarsList)
link(onBuild,5415745:doEvent1,[])
link(FileName,15537032:Text,[])
}
Add(Edit,1471851,560,280)
{
Left=35
Top=15
Width=315
Text="Title of file"
}
Add(Edit,2082879,609,280)
{
Left=35
Top=40
Width=315
Text="user name"
}
Add(Edit,15537032,357,336)
{
Left=35
Top=65
Width=315
Text=""
}
Add(Button,7306664,245,336)
{
Left=355
Top=65
Width=25
Caption="..."
link(onClick,8510228:doExecute,[])
}
Add(Button,12327116,182,476)
{
Left=140
Top=95
Width=125
Height=25
Caption="Send"
link(onClick,5988017:doEvent1,[])
}
Add(ODialog,8510228,301,336)
{
link(onExecute,15537032:doText,[])
}
Add(EventFromData,1260066,413,336)
{
link(onEvent,9081596:doCompare,[])
}
Add(If_else,9081596,462,336)
{
Op2=String(id)
link(onTrue,12053862:doData,[])
link(onFalse,6300632:doCompare,[(502,349)(502,391)])
}
Add(DoData,12053862,511,336)
{
Data=Integer(12)
link(onEventData,1224693:doWork2,[])
}
Add(If_else,6300632,511,385)
{
Op2=String(title30ins)
link(onTrue,10512379:doData,[])
link(onFalse,112990:doCompare,[(551,398)(551,440)])
}
Add(HubEx,1224693,651,336)
{
Angle=3
link(onEvent,1260066:doData,[(655,329)(407,329)(407,342)])
}
Add(DoData,10512379,560,385)
{
link(onEventData,12980371:doWork2,[])
link(Data,1471851:Text,[])
}
Add(If_else,112990,560,434)
{
Op2=String(user30ins)
link(onTrue,10419873:doData,[])
}
Add(DoData,10419873,609,434)
{
link(onEventData,12980371:doWork3,[(655,440)])
link(Data,2082879:Text,[])
}
Add(HubEx,12980371,651,385)
{
Angle=3
link(onEvent,1224693:doWork3,[])
}
Add(Memo,12685441,469,399)
{
Left=385
Top=5
Width=460
Height=120
ScrollBars=3
}
Add(Label,1482537,259,245)
{
Left=14
Top=17
Width=20
Height=17
Caption="title"
}
Add(Label,12043141,252,266)
{
Top=42
Width=34
Height=17
Caption="author"
}
Add(Label,4919481,245,287)
{
Left=17
Top=67
Width=17
Height=17
Caption="file"
}
Add(TCP_Client,8329135,574,539)
{
Port=80
link(onRead,1211923:doMessage,[])
}
Add(Hub,5415745,413,476)
{
link(onEvent1,12685441:doText,[(448,482)(448,426)])
link(onEvent2,4030595:doEvent1,[(434,489)(434,545)])
}
Add(Hub,4030595,441,539)
{
link(onEvent1,820334:doHostByIP,[(469,545)(469,524)])
link(onEvent2,8329135:doSend,[(478,552)(478,559)])
}
Add(Message,1211923,630,539)
{
}
Add(Hub,5988017,238,476)
{
link(onEvent1,10541436:doData,[(266,482)(266,510)])
link(onEvent2,3277775:doBuild,[(304,489)(304,482)])
}
Add(StrList,2804538,273,413)
{
Strings=#1:s|
}
Add(DoData,10541436,273,504)
{
link(Data,2804538:Text,[])
}
Add(Host,820334,483,518)
{
link(onIPByHost,8329135:doOpen,[(545,531)(545,545)])
link(HostName,2183037:Value,[])
}
Add(Memory,2183037,490,462)
{
Default=String(muon.rghost.ru)
}
карма: 0

0
файлы: 1code_30820.txt [2.8KB] [361]
Ответов: 5446
Рейтинг: 323
#14: 2013-04-14 16:32:09 ЛС | профиль | цитата
CITRUS, вот смотри ещё раз: заходишь браузером на rghost.net (именно .net, а не .ru) и открываешь код страницы.

1. Ищешь слово (тег, если быть точным) "<form" (без кавычек).
2. Смотришь аттрибут method - если "get", то пропускаешь - файлы пересылаются в другом месте.
3. Теперь между найденным <form и ближайшим </form> ищешь все тэги "<input" - аттрибуты name из этих тэгов идут в свойство VarsList (левую точку doVarsList открывать не обязательно).

карма: 1

0
Ответов: 141
Рейтинг: 11
#15: 2013-04-14 16:51:52 ЛС | профиль | цитата
Очень далёкая для меня тема вышла(
Нашёл я это:
commit
file
Но ничего не происходит...
Исходник радикала не помог т.к. он вообще не выдал результат...
Не работает ничего =(
Есть всего 200WMR, знаю что сумма мала, но если кто то сможет за эту сумму взяться объяснить мне как составить программу такого рода, то прошу отписаться..
карма: 0

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)