Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> idHTTP - POST, Передача картинки. 
V
    Опции темы
iddqd
Дата 30.1.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: нет
Всего: 2



Необходимо в POST запросе передать картинку скрипту. Помогите пожалуйста реализовать, а то уже долго бьюсь.
http://imageshack.us/ хотелось бы передать сюда картинку и получить URL на который перекидывает при успешной заливке, а в идеале ссылку отсюда: Direct link to image


--------------------
PM MAIL   Вверх
Snowy
Дата 30.1.2006, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Используй вариант
Код
function Post(AURL: string; const ASource: TIdMultiPartFormDataStream): string; 


Для отправки POST данных используй TIdMultiPartFormDataStream.
Туда можно добавлять данные разных типов, в том числе и картинки.

PM MAIL   Вверх
iddqd
Дата 30.1.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: нет
Всего: 2



По нажатию на кнопку пишу код:

Код

begin
m:=TIdMultiPartFormDataStream.Create;
m.AddFile('fileupload', 'D:\ic.gif', 'multipart/form-data');
Caption:=http.Post('http://www.imageshack.us/index.php', m);
m.Free;
end;


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


--------------------
PM MAIL   Вверх
Snowy
Дата 30.1.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код

m.AddFile('fileupload', 'D:\ic.gif', 'IMAGE');

Добавлено @ 19:13
Цитата(iddqd @ 30.1.2006, 18:25 Найти цитируемый пост)

Подскажите пожалуйста, как сделать правильно и чтоб получить ссылку на страницу, куда перенаправляет после успешной загрузки картинки.

Установи TIdHTTP.HandleRedirects := true;
PM MAIL   Вверх
iddqd
Дата 30.1.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: нет
Всего: 2



Snowy, спасибо большое.
там надо было ещё немного одбавить кода, чтоб получить конкретно то, что я хочу, но всё получилось в итоге.


--------------------
PM MAIL   Вверх
Rodman
Дата 24.9.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Скажите, а если я хочу на свой хост кинуть файл... то мне необходимо наваять свой php-файл, который будет принимать файл... или он сам формируется..

Не пойму???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 25.9.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Сам он никак не формируется - нужно писать принимающий скрипт, который и будет решать, что с этим файлом делать.
PM MAIL   Вверх
Rodman
Дата 25.9.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Вот не задача....

Подскажите, пожалуйста, простейший скрипт на PHP... 

 smile  smile  smile 
чтобы подходил под этот метод


Код


procedure TForm1.BitBtn1Click(Sender: TObject);
var m:TIdMultiPartFormDataStream;
begin
  m:=TIdMultiPartFormDataStream.Create;
  m.AddFile('fileupload', 'C:\gb.gif', 'IMAGE');
  Caption:=IdHTTP1.Post('http://MyHost/MyUpload.php', m);
  m.Free;
end;


В PHP ничего не отсреливаю.... smile  smile  smile 

Заранее благодарен
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 25.9.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Ну так поищи в разделе по PHP.
Хотя даже и искать долго не нужно - FAQ: http://vingrad.ru/PHP-PHPSCRIPTS-002361
PM MAIL   Вверх
Matematik
Дата 25.9.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Цитата(Rodman @  25.9.2006,  13:41 Найти цитируемый пост)
Подскажите, пожалуйста, простейший скрипт на PHP... 

В PHP доступ к загружаемым файлам через массив $_FILES

Код

<?php
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES 
// вместо $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print "File is valid, and was successfully uploaded. ";
    print "Here's some more debugging info:\n";
    print_r($_FILES);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print "Possible file upload attack!  Дополнительная отладочная информация:\n";
    print_r($_FILES);
}
print "</pre>";

?>


Добавлено @ 13:05 
Только к твоему вопросу это не имеет никакого отношения.
Тебе надо сформировать post запрос на http сервер imageshack, и распарсить html ответ.
Для начала научись правильно отправлять
PM MAIL WWW ICQ   Вверх
Rodman
Дата 25.9.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Как бы понимаешь... Мне как бы PHP и не нужен был пока не требовалось загрузку картинки сделать...

Просто на сколько я знаю от своих знакомых, upload не такая простая вешь... Так что пока разберусь, могу не успеть додела... вот и прошу простейший пример, чтобы подошел к вышеуказанному коду...

Добавлено @ 13:15 
Просто знающие должны знать как это делается...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 25.9.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Если PHP не устраивает - загружай по ftp.
Если не устраивает ftp - PHP или Perl.
А пример тебе уже дали...
PM MAIL   Вверх
Rodman
Дата 25.9.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Цитата(Matematik @  25.9.2006,  13:03 Найти цитируемый пост)
Только к твоему вопросу это не имеет никакого отношения.


вот эти слова и подвигнули меня на мысль, пример не совсем то что мне нужно... 

Цитата(Matematik @  25.9.2006,  13:03 Найти цитируемый пост)
Тебе надо сформировать post запрос на http сервер imageshack, и распарсить html ответ.
 
Что значит распарсить???

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 25.9.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Анализировать полученную страницу и вытащить из неё нужные данные.
PM MAIL   Вверх
Rodman
Дата 25.9.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ОК... А куда кинуть этот php???


В cgi-bin???

Добавлено @ 14:18 
Я вот написал...
Код

procedure TForm1.BitBtn1Click(Sender: TObject);
var m:TIdMultiPartFormDataStream;
begin
  m:=TIdMultiPartFormDataStream.Create;
  m.AddFile('fileupload', 'C:\gb.gif', 'IMAGE');
  Caption:=IdHTTP1.Post('http://localhost/MWUpload.php.php', m);
  m.Free;
end;


и когда компилю выдает
Код

class EIdHTTPProtocolException with message 'HTTP/1.1 404 Not Found'...


как настроить IdHttp???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0960 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.