|
|
Регистрация | << Правила форума >> | 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)
|