Вверх ↑
Этот топик читают: Гость
Ответов: 107
Рейтинг: 0
#271: 2020-05-29 16:29:20 ЛС | профиль | цитата
При загрузке через браузер (любой) в снифере отслеживается 2 пост запроса


карма: 0

0
Ответов: 4655
Рейтинг: 760
#272: 2020-05-29 16:53:42 ЛС | профиль | цитата
Это - то, что надо. FileField=file, PostData, вероятно, надо установить в остальные значения. Второй запрос, вероятно, используется для установки дополнительных атрибутов загруженного файла (типа "каталога" куда сохранять).
карма: 26

0
Ответов: 107
Рейтинг: 0
#273: 2020-05-29 17:03:03 ЛС | профиль | цитата
Это получается нужно добавить еще один компонент с пост запросом и в нем указать дополнительные параметры? Или добавить все в один запрос?

Редактировалось 1 раз(а), последний 2020-05-29 17:05:32
карма: 0

0
Ответов: 4655
Рейтинг: 760
#274: 2020-05-29 17:18:36 ЛС | профиль | цитата
Сначала попробовать один запрос - тот, который на картинке отправляет файл. Если будут проблемы - нужен второй запрос, так как он выполняется к другой странице.
карма: 26

0
Ответов: 107
Рейтинг: 0
#275: 2020-05-29 19:54:26 ЛС | профиль | цитата
Netspirit, Спасибо, все получилось! Пришлось добавить еще один компонент и добавить остальные запросы туда. Еще раз ОГРОМНОЕ человеческое спасибо!
Еще вопрос по поводу менеджера кук, его можно ставить одним компонентом, просто указать куда ему сохранять файл кук, список строк или еще что либо ему для этого не нужно? Просто связать событие старта программы с загрузкой кук, а закрытие с сохранением. (Надеюсь поймешь о чем я)

Я так понял нужно поставить еще один компонент с GET запросом и мониторить или не разлогинился ли компонент, скажем поставить блок if_else и если на странице есть надпись типа LOGIN, то нужно послать пост запрос с авторизацией. Верно?

Может глупый вопрос, но можно ли с помощью этого компонента передавать на сервер большие файлы 3-5ггб?

Еще возник вопрос, можно ли организовать несколько потоков одновременно на аплоад и как загружать список файлов?

Редактировалось 4 раз(а), последний 2020-05-30 04:27:54
карма: 0

0
Ответов: 4655
Рейтинг: 760
#276: 2020-06-01 14:06:52 ЛС | профиль | цитата
germes5558 писал(а):
Просто связать событие старта программы с загрузкой кук, а закрытие с сохранением.
Да, именно так и делается.

germes5558 писал(а):
Я так понял нужно поставить еще один компонент с GET запросом и мониторить или не разлогинился ли компонент
Да. Или мониторить ответ onFinish компонентов, отправляющих файлы - если в полученном тексте есть что-то характерное для страницы с логином - выполнить повторную авторизацию. Правда, во втором варианте большой файл сначала полностью отправится, а потом будет получено требование авторизации - это может быть неприемлемо.

germes5558 писал(а):
Может глупый вопрос, но можно ли с помощью этого компонента передавать на сервер большие файлы 3-5ггб?
Отправлять - до ~4 Гб, скачивать можно любые.

germes5558 писал(а):
Еще возник вопрос, можно ли организовать несколько потоков одновременно на аплоад и как загружать список файлов?
Внутри компонента реализовано отправку только 1 файла за раз, поэтому нужно отправлять по одному в цикле по списку. Реализация - компонент Thread, внутри которого стоит перебор списка имен файлов и выполняется отправка одним компонентом HTTPClient.
Несколько файлов одновременно - сложнее. Для начала можно сделать несколько списков, из которых отправлять одновременно несколькими Thread + HTTPClient.

Редактировалось 2 раз(а), последний 2020-06-01 14:08:57
карма: 26

0
Ответов: 107
Рейтинг: 0
#277: 2020-06-02 02:41:37 ЛС | профиль | цитата
Netspirit, Спасибо еще раз! Можете еще если не затруднит набросать простую схемку (можно без параметров), просто что бы я понял, что я должен именно сделать с этим потоком(((
карма: 0

0
Ответов: 4655
Рейтинг: 760
#278: 2020-06-02 13:03:18 ЛС | профиль | цитата
В примере "Скачивание файлов" есть использование Thread. Между Thread и HTTPClient ставишь список файлов и его перебор, получаемые имена подаешь на UploadFile - вот и всё.
карма: 26

0
Ответов: 107
Рейтинг: 0
#279: 2020-06-02 15:42:43 ЛС | профиль | цитата
Netspirit, Это нужно поставить таблицу строк с загруженными в нее списком файлов, затем перебором массива подавать на поток файлы по очереди? Поток будет ждать пока файл выгрузится на сервер?) Или по событию финиш нужно сделать связь с повторением? Просто я такую конструкцию сделал и у меня проблема, дело в том, что после того как выгружается последний файл, его начинает лить по кругу бесконечно...

В примере есть, но там один компонент, а мне нужно делать GET запрос, а потом уже 2 POST. Видимо я что то делаю не так

Make(delphi)
ver(4.05 build 186)
Add(MainForm,12505096,175,182)
{
 Width=1113
 Height=684
 Caption="HTTPClient - Cookie"
 Position=1
 Point(onClose)
 link(onCreate,2515764:In,[(229,202)(229,195)])
 link(onClose,16535532:In,[(243,209)(243,216)])
}
Add(Button,12479344,357,462)
{
 Left=10
 Top=5
 Width=140
 Height=25
 Caption="login"
 link(onClick,5102370:doEvent1,[])
}
Add(DoData,7347341,574,441)
{
 link(onEventData,9377522:doEvent1,[])
 link(Data,2427935:getVar,[])
}
Add(Hub,9377522,644,441)
{
 InCount=2
 link(onEvent1,16267355:doAdd,[(668,447)(668,461)])
}
Add(CookieManager,16633777,462,588)
{
 Filename="Cookie\\picstate.txt"
 Name="rest"
 Point(doDelete)
 Point(onChange)
 Point(doClear)
}
Add(Hub,5102370,420,462)
{
 OutCount=4
 link(onEvent1,8936422:doWork,[])
 link(onEvent2,16633777:doClear,[(434,629)])
 link(onEvent3,7240677:doString,[(486,482)(486,391)])
 link(onEvent4,11811091:doLoadString,[])
}
Add(LineBreakEx,8936422,455,462)
{
 Caption="clear"
}
Add(LineBreakEx,2111794,609,462)
{
 Caption="clear"
 Type=1
 link(OnEvent,16267355:doClear,[])
}
Add(LineBreakEx,2427935,574,420)
{
 Caption="head"
 Type=2
}
Add(LineBreakEx,15402714,532,532)
{
 Caption="head"
 Type=3
 link(_Data,11811091:RawHeaders,[])
}
Add(LineBreak,3914119,364,602)
{
 Caption="save"
 link(Out,16633777:doSave,[])
 Primary=[16535532,-112,-392]
}
Add(LineBreak,1905389,364,623)
{
 Caption="load"
 link(Out,16633777:doLoad,[(416,629)(416,615)])
 Primary=[2515764,-112,-434]
}
Add(HTTPClient,11811091,518,483)
{
 URL="https://picstate.com/account/login"
 Method=1
 Headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nReferer: https://picstate.com/login\r\nOrigin: https://picstate.com\r\nUpgrade-Insecure-Requests: 1\r\nTE: Trailers"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 IgnoreInvalidCN=1
 Decompress=1
 CookieManager="rest"
 Point(Headers)
 Point(PostData)
 Point(onRedirect)
 Point(RawHeaders)
 link(onHeadersAvail,7347341:doData,[(562,489)(562,447)])
 link(onFinish,9377522:doEvent2,[(597,496)(597,454)])
 link(PostData,7240677:FString,[])
}
Add(Button,11773978,777,210)
{
 Left=175
 Top=5
 Width=140
 Height=25
 Caption="Send img"
 link(onClick,5357300:doWork2,[])
}
Add(HTTPClient,8993969,945,315)
{
 URL="https://picstate.com/multiup"
 Headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nUpgrade-Insecure-Requests: 1\r\nTE: Trailers"
 Referer="https://picstate.com/myfiles"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 EncType=1
 IgnoreInvalidCN=1
 Decompress=1
 CookieManager="rest"
 Point(Headers)
 Point(PostData)
 Point(RawHeaders)
 Point(CurrentURL)
 Point(onRedirect)
 link(onFinish,11275676:doAdd,[(1029,328)(1029,363)])
}
Add(BlockFind,14902239,1106,413)
{
 IncludeBlock=1
 StartBlock=""multiup_sess" : ""
 EndBlock="","
 link(onSearch,7390642:doData,[])
 link(Text,16298705:Var3,[(1112,408)])
}
Add(EventFromData,7390642,1155,413)
{
 link(onEvent,14791049:doEvent1,[(1195,419)(1195,426)])
}
Add(Hub,15439320,833,315)
{
 OutCount=5
 link(onEvent1,8993969:doLoadString,[])
 link(onEvent2,185910:doSearch,[(929,328)(929,366)(849,366)(849,412)])
 link(onEvent3,11487906:doSearch,[(922,335)(922,377)(849,377)(849,496)])
 link(onEvent4,6079180:doString,[(963,342)(963,552)])
 link(onEvent5,16373781:doLoadString,[(1053,349)(1053,573)])
}
Add(EventFromData,6655165,1295,518)
{
}
Add(SymbolsGen,9496845,1239,413)
{
 Count=29
 Symbols="abcdefghijklmnopqrstuvwxyz1234567890"
 link(onResult,15579385:doString,[])
}
Add(FormatStr,15579385,1295,413)
{
 DataCount=1
 Mask="%1.jpg"
 Point(FString)
 link(Str1,9496845:Result,[(1301,401)(1273,401)(1273,457)(1245,457)])
}
Add(BlockFind,185910,861,406)
{
 IncludeBlock=1
 StartBlock=""timestamp" : ""
 EndBlock="","
 link(onSearch,7750386:doData,[])
 link(Text,11864204:Var1,[(867,397)(1084,397)])
}
Add(EventFromData,7750386,924,406)
{
}
Add(BlockFind,11487906,868,490)
{
 IncludeBlock=1
 StartBlock=""token"     : ""
 EndBlock="","
 link(onSearch,6687011:doData,[])
 link(Text,16298705:Var2,[(874,451)(1091,451)])
}
Add(EventFromData,6687011,924,490)
{
}
Add(GetDataEx,11864204,1078,403)
{
 Angle=3
 link(Data,11275676:Text,[(1063,408)])
}
Add(GetDataEx,16298705,1085,403)
{
 Angle=3
 link(Data,11864204:Var3,[])
}
Add(HTTPClient,16373781,1260,567)
{
 URL="https://picstate.com/multiuploader.php"
 Method=1
 Headers="Origin: https://picstate.com\r\nAccept: */*\r\nAccept-Language: ru-UA\r\nHost: picstate.com\r\nConnection: Keep-Alive\r\nCache-Control: no-cache\r\n"
 Referer="https://picstate.com/multiup"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 FileField="file"
 FileMIME="image/png"
 Boundary="---------------------------7e413830430de8"
 CookieManager="rest"
 Point(UploadFile)
 Point(PostData)
 Point(CurrentURL)
 Point(onRedirect)
 Point(doLoadStream)
 Point(doExecute)
 link(onFinish,7364812:doString,[(1360,580)(1360,636)(1108,636)(1108,685)])
 link(UploadFile,3167038:Item,[])
 link(PostData,6655165:GetData,[(1287,559)(1301,559)])
}
Add(FormatStr,6079180,1008,546)
{
 DataCount=5
 Mask="name=%5\r\ntimestamp=%2\r\ntoken=%3\r\nmultiup_sess=%4\r\nupl_ver=new"
 Point(FString)
 link(onFString,16312752:In,[])
 link(Str2,1501388:Var,[])
 link(Str3,2076554:Var,[])
 link(Str4,8402578:Var1,[(1035,525)])
 link(Str5,8253879:Var2,[])
}
Add(LineBreak,1496977,1295,448)
{
 Caption="name"
 Type=1
 link(Data,15579385:FString,[])
 Primary=[4516172,-259,63]
}
Add(LineBreak,14637814,924,532)
{
 Caption="token"
 Type=1
 link(Data,6687011:GetData,[])
 Primary=[2076554,98,-42]
}
Add(LineBreak,12261620,924,448)
{
 Caption="timestamp"
 Type=1
 link(Data,7750386:GetData,[])
 Primary=[1501388,91,14]
}
Add(LineBreak,1163260,1155,448)
{
 Caption="multiup_sess"
 Type=1
 link(Data,7390642:GetData,[])
 Primary=[12687867,-21,42]
}
Add(LineBreak,15534217,1218,518)
{
 Caption="postdata"
 link(Out,6655165:doData,[])
 Primary=[16312752,-147,28]
}
Add(GetDataEx,8402578,1120,520)
{
 Angle=1
 link(Data,12687867:Var,[(1140,525)])
}
Add(HTTPClient,7217892,1204,679)
{
 URL="https://picstate.com/multiup"
 Method=1
 Headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nConnection: keep-alive\r\nHost: picstate.com\r\nUpgrade-Insecure-Requests: 1\r\nTE: Trailers"
 Referer="https://picstate.com/multiup"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 EncType=1
 FileField="file"
 FileMIME="image/png"
 Boundary="---------------------------7e4217d430de8"
 SSLProtocols=1
 Decompress=1
 CookieManager="rest"
 Point(UploadFile)
 Point(PostData)
 Point(CurrentURL)
 Point(onRedirect)
 link(onHeadersAvail,5357300:doWork3,[(1248,685)(1248,452)(1166,452)])
 link(onFinish,445326:doAdd,[])
 link(PostData,7364812:FString,[(1231,667)(1179,667)(1179,723)(1126,723)])
}
Add(FormatStr,7364812,1120,679)
{
 Mask="multiup_sess=%1\r\naction=upload\r\nfolder_id=\r\nresize=600\r\ncustom_resize=\r\nshow_original=on\r\nuploader_0_tmpname=%2\r\nuploader_0_name=\r\nuploader_0_status=done\r\nuploader_count=1"
 Point(FString)
 link(onFString,7217892:doLoadString,[])
 link(Str1,8402578:Var2,[])
 link(Str2,8253879:Var1,[(1133,605)(1033,605)(1033,530)])
}
Add(Hub,14791049,1204,420)
{
 link(onEvent1,9496845:doGenerate,[(1228,426)(1228,419)])
}
Add(GetDataEx,8253879,1036,525)
{
 link(Data,4516172:Var,[])
}
Add(StrList,11275676,1057,357)
{
 link(onChange,14902239:doSearch,[(1097,363)(1097,419)])
}
Add(FormatStr,7240677,539,385)
{
 Mask="action=login\r\ntask=login\r\nreturn=\r\nusername=%1\r\npassword=%2\r\nremember=1\r\nsubmit=Login"
 Point(FString)
 link(Str1,848935:Text,[(545,355)(510,355)])
 link(Str2,5325029:Text,[(552,355)(573,355)])
}
Add(Edit,5325029,567,294)
{
 Left=345
 Top=585
 Width=245
 Text="123456"
}
Add(Edit,848935,504,294)
{
 Left=155
 Top=585
 Width=175
 Text="test01"
}
Add(StrList,16267355,679,455)
{
}
Add(ListBox,14771765,1414,686)
{
 Left=165
 Top=45
 Width=910
 Height=465
 link(onChange,445326:doClear,[(1458,692)(1458,696)(1248,696)(1248,699)])
}
Add(ListBox,9763756,1239,133)
{
 Left=255
 Top=20
 Width=380
 Height=485
 Visible=1
 DataType=1
}
Add(ODialog,9697955,1085,119)
{
 Select=1
 link(onExecute,9763756:doAdd,[(1178,125)(1178,139)])
}
Add(Button,12000944,987,119)
{
 Top=55
 Width=145
 Height=50
 Font=[MS Sans Serif,10,1,255,1]
 Caption="..."
 link(onClick,9697955:doExecute,[])
}
Add(Counter,14212346,1190,210)
{
 Min=-1
 Default=-1
 Point(Max)
 link(onNext,3167038:doRead,[])
 link(Max,9763756:Count,[(1196,188)(1252,188)])
}
Add(ArrayRW,3167038,1274,210)
{
 link(onRead,4525002:doStart,[(1318,216)(1318,268)(751,268)(751,321)])
 link(Array,9763756:Array,[(1280,188)(1259,188)])
}
Add(Thread,4525002,763,315)
{
 link(onExec,15439320:doEvent1,[])
}
Add(HubEx,5357300,1162,210)
{
 link(onEvent,14212346:doNext,[])
}
Add(StrList,445326,1260,686)
{
 link(onChange,10668794:doSearch,[])
}
Add(BlockFind,8644012,1358,686)
{
 StartBlock="[url=https://picstate.com"
 EndBlock="[/img][/url]"
 link(onSearch,14771765:doAdd,[])
}
Add(BlockFind,10668794,1309,686)
{
 IncludeBlock=1
 StartBlock="<p>BBCode Thumbnails Pictures for forums</p>"
 EndBlock="</textarea>"
 link(onSearch,8644012:doSearch,[])
 link(Text,445326:Text,[(1315,674)(1290,674)(1290,730)(1266,730)])
}


Редактировалось 4 раз(а), последний 2020-06-02 15:48:29
карма: 0

0
Ответов: 4655
Рейтинг: 760
#280: 2020-06-02 16:24:15 ЛС | профиль | цитата

Add(MainForm,2953706,21,105)
{
 Width=593
 Height=332
 Caption="Upload"
 Position=1
 Point(onClose)
 link(onCreate,2515764:In,[])
 link(onClose,16535532:In,[(61,132)(61,146)])
}
Add(ListBox,9763756,518,112)
{
 Left=15
 Top=70
 Width=560
 Height=180
 Visible=1
 DataType=1
}
Add(ODialog,9697955,434,112)
{
 Select=1
 link(onExecute,12113901:doWork2,[])
}
Add(Button,12000944,378,112)
{
 Left=15
 Top=40
 Width=125
 Font=[MS Sans Serif,10,1,255,1]
 Caption="Add file..."
 link(onClick,9697955:doExecute,[])
}
Add(Thread,4525002,455,231)
{
 FastStop=0
 link(onExec,1179673:doEnum,[])
 AddHint(-11,45,37,13,FastStop)
}
Add(Button,14457400,406,231)
{
 Left=15
 Top=260
 Width=110
 Height=25
 Caption="Send!"
 link(onClick,4525002:doStart,[])
}
Add(ArrayEnum,1179673,532,231)
{
 link(onItem,11864578:doEvent1,[])
 link(Array,9763756:Array,[])
}
Add(Hub,11864578,630,231)
{
 link(onEvent1,8993969:doLoadString,[(693,237)(693,41)])
 link(onEvent2,16373781:doLoadString,[(693,244)(693,384)])
}
Add(EventFromData,6655165,868,322)
{
 link(onEvent,6079180:doString,[])
}
Add(HTTPClient,16373781,847,378)
{
 URL="https://picstate.com/multiuploader.php"
 Method=1
 Headers="Origin: https://picstate.com\r\nAccept: */*\r\nAccept-Language: ru-UA\r\nHost: picstate.com\r\nConnection: Keep-Alive\r\nCache-Control: no-cache\r\n"
 Referer="https://picstate.com/multiup"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 FileField="file"
 FileMIME="image/png"
 Boundary="---------------------------7e413830430de8"
 CookieManager="rest"
 Point(UploadFile)
 Point(PostData)
 Point(CurrentURL)
 Point(onRedirect)
 Point(doLoadStream)
 Point(doExecute)
 link(onFinish,7364812:doString,[])
 link(UploadFile,1179673:Item,[(867,363)(538,363)])
 link(PostData,6655165:GetData,[])
 AddHint(-77,57,199,13,URL)
 AddHint(39,32,44,13,Method)
}
Add(FormatStr,6079180,910,322)
{
 DataCount=4
 Mask="timestamp=%1\r\ntoken=%2\r\nmultiup_sess=%3\r\nname=%4\r\npl_ver=new"
 Point(FString)
 link(onFString,6655165:doData,[(960,328)(960,316)(856,316)(856,328)])
 link(Str1,1501388:Var,[])
 link(Str2,2076554:Var,[])
 link(Str3,7967773:getVar,[])
 link(Str4,16622634:getVar,[])
}
Add(LineBreak,16507820,945,98)
{
 Caption="token"
 Type=1
 link(Data,6787377:Value,[])
 Primary=[2076554,-28,140]
}
Add(LineBreak,1273808,875,98)
{
 Caption="timestamp"
 Type=1
 link(Data,16763671:Value,[])
 Primary=[1501388,35,112]
}
Add(LineBreakEx,7967773,924,259)
{
 @Color=43520
 Caption="multiup_sess"
 Type=2
}
Add(LineBreakEx,15266676,1001,98)
{
 @Color=43520
 Caption="multiup_sess"
 Type=3
 link(_Data,5103400:Value,[])
}
Add(LineBreakEx,16622634,931,287)
{
 @Color=43690
 Caption="name"
 Type=2
}
Add(LineBreakEx,6179790,1092,98)
{
 @Color=43690
 Caption="name"
 Type=3
 link(_Data,4350528:Value,[])
}
Add(HTTPClient,7217892,1113,385)
{
 URL="https://picstate.com/multiup"
 Method=1
 Headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nConnection: keep-alive\r\nHost: picstate.com\r\nUpgrade-Insecure-Requests: 1\r\nTE: Trailers"
 Referer="https://picstate.com/multiup"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 EncType=1
 FileField="file"
 FileMIME="image/png"
 Boundary="---------------------------7e4217d430de8"
 SSLProtocols=1
 Decompress=1
 CookieManager="rest"
 Point(UploadFile)
 Point(PostData)
 Point(CurrentURL)
 Point(onRedirect)
 link(PostData,7364812:FString,[(1140,373)(1088,373)(1088,429)(1035,429)])
 AddHint(-74,55,149,13,URL)
 AddHint(47,30,44,13,Method)
}
Add(FormatStr,7364812,1029,385)
{
 Mask="multiup_sess=%1\r\naction=upload\r\nfolder_id=\r\nresize=600\r\ncustom_resize=\r\nshow_original=on\r\nuploader_0_tmpname=%2\r\nuploader_0_name=\r\nuploader_0_status=done\r\nuploader_count=1"
 Point(FString)
 link(onFString,7217892:doLoadString,[])
 link(Str1,10085990:getVar,[])
 link(Str2,2171218:getVar,[])
}
Add(LineBreakEx,10085990,1029,336)
{
 @Color=43520
 Caption="multiup_sess"
 Type=2
}
Add(LineBreakEx,2171218,1036,357)
{
 @Color=43690
 Caption="name"
 Type=2
}
Add(HTTPClient,8993969,742,35)
{
 URL="https://picstate.com/multiup"
 Headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nUpgrade-Insecure-Requests: 1\r\nTE: Trailers"
 Referer="https://picstate.com/myfiles"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 EncType=1
 IgnoreInvalidCN=1
 Decompress=1
 CookieManager="rest"
 Point(Headers)
 Point(PostData)
 Point(RawHeaders)
 Point(CurrentURL)
 Point(onRedirect)
 AddHint(-43,54,149,13,URL)
 AddHint(44,30,37,13,Method)
}
Add(InfoTip,599470,679,7)
{
 Info=#49:Здесь - подготовить данные для следующих запросов|
 Width=463
 Height=130
}
Add(CookieManager,16633777,161,203)
{
 Filename="Cookie\\picstate.txt"
 Name="rest"
 Point(doDelete)
 Point(onChange)
 Point(doClear)
}
Add(LineBreak,6135889,63,217)
{
 Caption="save"
 link(Out,16633777:doSave,[])
 Primary=[16535532,7,-77]
}
Add(LineBreak,10440100,63,238)
{
 Caption="load"
 link(Out,16633777:doLoad,[(115,244)(115,230)])
 Primary=[2515764,7,-119]
}
Add(Button,12479344,56,525)
{
 Left=300
 Top=10
 Width=100
 Caption="login"
 link(onClick,11811091:doLoadString,[])
}
Add(HTTPClient,11811091,126,525)
{
 URL="https://picstate.com/account/login"
 Method=1
 Headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\nReferer: https://picstate.com/login\r\nOrigin: https://picstate.com\r\nUpgrade-Insecure-Requests: 1\r\nTE: Trailers"
 UserAgent="User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
 IgnoreInvalidCN=1
 Decompress=1
 CookieManager="rest"
 Point(Headers)
 Point(PostData)
 Point(onRedirect)
 Point(RawHeaders)
 link(PostData,4368628:GetData,[])
 AddHint(-43,44,182,13,URL)
}
Add(FormatStr,7240677,196,469)
{
 Mask="action=login\r\ntask=login\r\nreturn=\r\nusername=%1\r\npassword=%2\r\nremember=1\r\nsubmit=Login"
 Point(FString)
 link(onFString,4368628:doData,[(240,475)(240,463)(135,463)(135,475)])
 link(Str1,848935:Text,[(202,439)(167,439)])
 link(Str2,5325029:Text,[])
}
Add(Edit,5325029,203,392)
{
 Left=150
 Top=10
 Width=140
 Text="123456"
}
Add(Edit,848935,161,392)
{
 Left=15
 Top=10
 Width=125
 Text="test01"
}
Add(EventFromData,4368628,147,469)
{
 link(onEvent,7240677:doString,[])
}
Add(InfoTip,1514764,42,322)
{
 Info=#46:Авторизация - добавить контроль успеха/ошибки,|31:проверку состояния авторизации |49:(раз куки сохраняются, значит после загрузки уже |24:можем быть авторизованы)|
 Width=295
 Height=277
}
Add(Memory,16763671,875,56)
{
}
Add(Memory,6787377,945,56)
{
}
Add(Memory,5103400,1001,56)
{
}
Add(Memory,4350528,1092,56)
{
}
Add(DropFile,12210781,434,161)
{
 link(onDropFile,12113901:doWork3,[(494,167)])
}
Add(HubEx,12113901,490,112)
{
 link(onEvent,9763756:doAdd,[])
}
Add(Button,16575668,406,315)
{
 Left=500
 Top=260
 Width=75
 Caption="Abort"
 link(onClick,13601556:doEvent1,[])
}
Add(LineBreak,4937844,791,392)
{
 Caption="abort"
 link(Out,16373781:doAbort,[])
 Primary=[13140316,-301,-70]
}
Add(Hub,13601556,462,315)
{
 link(onEvent1,1179673:doStop,[(504,321)(504,244)])
 link(onEvent2,13140316:In,[])
}
germes5558 писал(а):
Поток будет ждать пока файл выгрузится на сервер?
Да.
germes5558 писал(а):
его начинает лить по кругу бесконечно
Thread.FastStop должен быть True.
карма: 26

0
Ответов: 107
Рейтинг: 0
#281: 2020-06-03 01:00:03 ЛС | профиль | цитата
Netspirit, Спасибо тебе большое! Даже не знаю как отблагодарить. Время потратил на меня не мало...

PS. долго возился еще с перебором массива, так как ты сделал в схеме не срабатывало, пока после перебора массива не поставил компонент DoData)))


Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
}
Add(ListBox,9763756,714,322)
{
 Left=15
 Top=70
 Width=560
 Height=180
 DataType=1
}
Add(ODialog,9697955,623,322)
{
 Select=1
 link(onExecute,9763756:doAdd,[])
}
Add(Button,12000944,567,322)
{
 Left=15
 Top=40
 Width=125
 Font=[MS Sans Serif,10,1,255,1]
 Caption="Add file..."
 link(onClick,9697955:doExecute,[])
}
Add(Hub,15439320,826,441)
{
 OutCount=3
}
Add(Button,14583897,623,441)
{
 Left=15
 Top=260
 Width=110
 Height=25
 Caption="Send!"
 link(onClick,4525002:doStart,[])
}
Add(Thread,4525002,679,441)
{
 FastStop=0
 link(onExec,1179673:doEnum,[])
 AddHint(-11,45,37,13,FastStop)
}
Add(ArrayEnum,1179673,728,441)
{
 link(onItem,998709:doData,[])
 link(Array,9763756:Array,[])
}
Add(DoData,998709,777,441)
{
 link(onEventData,15439320:doEvent1,[])
}

карма: 0

0
Ответов: 107
Рейтинг: 0
#282: 2020-06-06 00:40:30 ЛС | профиль | цитата
А можно ли как то сделать, что бы при не удачной выгрузке файла, можно было повторить выгрузку ТОЛЬКО файлов которые не выгрузились? (надеюсь поймете о чем я)
карма: 0

0
Ответов: 107
Рейтинг: 0
#283: 2020-06-09 02:40:21 ЛС | профиль | цитата
Сам спросил - сам отвечу:
Можно, с помощью ArrayFind с параметром "Искать по части строки" на которую мы передаём имя загруженного файла...
карма: 0

0
Ответов: 4655
Рейтинг: 760
#284: 2020-06-09 12:28:07 ЛС | профиль | цитата
1) Перебираешь основной список имен файлов.
2) Перед запросом каждое имя сохраняешь в Memory
3) После запроса если произошла ошибка - добавляешь имя в другой список "неудавшихся"
4) По окончании перебора основного списка перекидаешь в него второй список и если там есть файлы - повторяешь перебор основного списка.
карма: 26

0
Ответов: 2059
Рейтинг: 132
#285: 2020-06-09 16:31:45 ЛС | профиль | цитата
Сам спросил - сам отвечу:

germes5558, у тебя вопрос выскакивает, прежде чем вообще о чём то подумал.
В рамках хорошего тона, наверное надо рассказать что пытался делать и почему не получилось!
Если не знаешь вообще с чего подступиться, то надо изучить тему и вложить правильные слова в вопрос, чтобы люди не Ванговали. При правильном формулировании вопроса - ответ приходит прежде, чем дописал его!

Редактировалось 1 раз(а), последний 2020-06-09 16:32:56
карма: 6

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