Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с TidHTTP метод PUT [WinXP]


mr. Eof ©   (2006-08-26 19:08:00) 

Добрый день!

Подскажите пожалуйста в чем я ошибаюсь при работе с TidHTTP. Вот код:
procedure TForm1.Button2Click(Sender: TObject);
var
 FHTTP: TIdHTTP;
 DestinationAddress: String;
 SourceAddress: TStream;

begin
 FHTTP:= TIdHTTP.Create(nil);
 try
   DestinationAddress:=Edit2.Text;
   FHTTP.Head(DestinationAddress);
   SourceAddress:= TFileStream.Create(Edit1.Text, fmCreate);

   FHTTP.Put(DestinationAddress, SourceAddress);
   SourceAddress.Free;
 finally
   FHTTP.Free;
 end;
end;


При выполнении - выскакивает ошибка:
- 404 (Project ... raised exception class EIdHTTPProtocolException with message 'http/1.1 404 not found') если файла назначения (куда) - нет
- 405 (Project ... raised exception class EIdHTTPProtocolException with message 'http/1.1 405 Method not allowed') если файл есть.

Закачиваю файл к себе на локалхост.

Спасибо!


mr. Eof   (2006-08-26 20:18:00) [1]

о! очень хорошо! Спасибо!


Dmitrij_K   (2006-08-26 20:09:00) [2]

1й функцией обойтись никогда нельзя Ж)
использование ftp (file transfer protocol) логичней тк оно и существует для передачи файлов


Ketmar   (2006-08-26 20:02:00) [3]

плакалъ. орешек.


mr. Eof   (2006-08-26 20:00:00) [4]

блин... облом...
А если использовать не TidHTTP а другой для FTP, то таких проблем не будет?

Там везде можно будет 1й функцией залить файл?


Dmitrij_K   (2006-08-26 19:59:00) [5]

Отправка выглядит так
var a : TIdMultiPartFormDataStream;
begin
a := TIdMultiPartFormDataStream.Create;
a.AddFile('file1',FileName,'');
IdHTTP1.Post(' http://127.0.0.1/test.php', a);
a.Free;
end;


Dmitrij_K   (2006-08-26 19:57:00) [6]

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


mr. Eof   (2006-08-26 19:51:00) [7]

Так. Спасибо за замечание! Вычеркнул Head.

А Put - это какой-то специфический метод или стандартно он на всех серваках в Инете работает? Пишу программу, она должна будет заливать лог на сервак в Инете, так что возможно правильным будет использовать другой вариант (который бы поддерживали все серваки) закачивания файлов на сервер?


Dmitrij_K   (2006-08-26 19:43:00) [8]

код у тебя левый. Зачем понадобилось слать head потом put? не логично


Dmitrij_K   (2006-08-26 19:40:00) [9]

Сервер должен потдерживать метод Put (см. документацию сервера , как включить)


mr. Eof   (2006-08-26 19:36:00) [10]

ээ.. Извините, я не понял.. А как же тогда закачать файл на сервер?


Dmitrij_K   (2006-08-26 19:24:00) [11]

Метод Head выдает 404 если файл не существует
Метод Put не потдерживается (инди так написало). Включается на HTTP сервере


Наверх

Титульная страница Поиск, карта сайта Написать письмо