![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() здравствуйте, хочу программно загрузить картинку на конкретный хостинг.
хостинг ipic.su знаю что нужно использовать Idhttp, tmultipartformdata знаю что нужно смотреть через программы типа http analizer вот скрин post data ![]() Но никак не пойму, как именно оформить всё это дело. объясните пожалуйста, что делать, на примере этого хостинга. хочу понять, что бы потом иметь возможность самостоятельно менять хостинги. ни разу с подомным не сталкивался, да и новичок в целом еще _) помогите пожалуйста и если можно не пишите для меня исходник) на словах объясните, что бы я сам поеб... помучался) дабы закрепить это дело в своей голове) Последний раз редактировалось Tech N9ne, 18.05.2018 в 15:09. |
#2
|
||||
|
||||
![]() У каждого хранилища свои правила заливки, чтоб особо не "поеб... помучался)" проще использовать компонент TWebBrowser с последующей обработкой соответствующих полей загрузчика хостинга, кстати, конкретно правила ipic.su, если не ошибаюсь, запрещают автоматизацию процесса апплоуда и в воизбежание конфликтов с администрацией сервиса вариант с "подставой" выглядит предпочтительнее
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Tech N9ne (21.05.2018)
|
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
|||
|
|||
![]() Цитата:
А как выбрать изображение? На сайте кнопочка "обзор", где и нужно выбрать файл. Как программно вставить путь, не понимаю. Нашёл такой ответ на форуме, но человек говорит что не всё так просто. http://www.delphisources.ru/forum/sh...ad.php?t=24513 И всё же если я хочу загрузить изображение без webbrowser, подскажите, как пользоваться tmultipartformdata ? Мне не понятны некоторые нюансы Код:
data := TIdMultiPartFormDataStream.Create; Код:
data.AddFile( 'Filename' , Edit1.Text {это путь к файлу} , '1' {это что??} ); Код:
data.AddFormField На скрине к примеру вторая строчка - action , loadimg , 7 Мне не понятно, как именно работать с TIdMultiPartFormDataStream. Если бы вы прояснили ситуацию, был бы очень благодарен! Мне в принципе не важно, что там хостинги запрещают автоматизацию апплоуда. Мне бы понять принцип работы. В случае чего, смогу спокойно переписать код под другой хостинг. Последний раз редактировалось Tech N9ne, 21.05.2018 в 12:44. |
#5
|
|||
|
|||
![]() Код:
uses IdMultipartFormData; { .... } procedure TForm1.Button1Click(Sender: TObject); var data: TIdMultiPartFormDataStream; Ssilka: String; begin data := TIdMultiPartFormDataStream.Create; try { передаём папаметры скрипту } data.AddFile('Filename', sEdit1.Text, ''); // в эдите путь к картинке, формата jpg data.AddFormField('link', '/'); data.AddFormField('action', 'loadimg'); data.AddFormField('client' ,'ipic.su'); data.AddFormField('image' ,'Content-Type: image/jpeg'); { Вызываем Post метод компонента TIdHTTP и считываем результат в TMemo } Ssilka := IdHTTP1.Post('http://ipic.su/', data); sMemo1.Lines.Clear; sMemo1.Lines.Add(Ssilka); finally data.Free; end; end; Что делаю не так???? В мемо получаю - Only jpg|gif|png imagetypes support. ![]() Последний раз редактировалось Tech N9ne, 21.05.2018 в 18:11. |
#6
|
|||
|
|||
![]() Посмотрите, что передается в хидере, там как минимум User-agent еще.
|
#7
|
||||
|
||||
![]() Там не только тип браузера передавать нужно, там и качество сжатия и размер превью требуется, много чего, можно сниффером перехватить пакет и подсмотреть, но подозреваю что для каждой загрузки его состав отличается не только именем и содержимым, но и структурой, во всяком случае даже их "фирменный" iPicShell апплоудит через браузер, видимо такой движок у сайта "дружелюбный", плата за удобство что без капчи принимает картинки
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Tech N9ne (22.05.2018)
|
#8
|
|||
|
|||
![]() Цитата:
Код:
var Ssilka , HostingURL , Save_Path :string; {.....} data := TIdMultiPartFormDataStream.Create; HostingURL:='http://uploads.ru/'; try data.AddFile('Filename', Save_Path, '5'); data.AddFormField('doShort', 'false'); data.AddFormField('sID', 'fjgt40vrohem9n9npoqkfkiae2'); data.AddFormField('ImageUp' ,'Content-Type: application/octet-stream'); data.AddFormField('Upload', 'Submit Query'); Ssilka := IdHTTP1.Post('http://uploads.ru/upload.php', data); sMemo1.Lines.Clear; sMemo1.Lines.Add(Ssilka); // получаю конец ссылки, типа Zf4RL.jpg Delete(Ssilka,1,13) ; Delete(Ssilka,10,2) ; sMemo1.Lines.Add(HostingURL+ssilka) ; // склеиваю uploads.ru/ + Zf4RL.jpg wb1.Navigate(HostingURL+ssilka); finally data.Free; end; то что красным, меняется при каждой загрузке.. s8,s0,s4 и тд пришлось через twebbrowser заходить по ссылке, и парсить прямую ссылку к изображению в html. может кому пригодится из новичков) Спасибо за помощь! Последний раз редактировалось Tech N9ne, 22.05.2018 в 01:19. |