Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

Проблема с TidHTTP метод PUT   Найти похожие ветки 

 
mr. Eof   (2006-08-26 19:08) [0]

Добрый день!

Подскажите пожалуйста в чем я ошибаюсь при работе с 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") если файл есть.

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

Спасибо!


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

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

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


 
Ketmar ©   (2006-08-26 20:02) [9]

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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.055 c
2-1168193651
blackgrin
2007-01-07 21:14
2007.01.28
латинская буква Е с acute


15-1168599776
Rouse_
2007-01-12 14:02
2007.01.28
Как правильно рисовать в MS Paint - е :)


5-1147314566
БэкхэМ
2006-05-11 06:29
2007.01.28
Помогите Плиззз!!!


2-1168473975
AnEnd
2007-01-11 03:06
2007.01.28
Как быстро скопировать record ?


2-1168212195
koha
2007-01-08 02:23
2007.01.28
Модуль Compress.pas - распаковка ресурсов в файл