Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
15-1168427598
Руслан
2007-01-10 14:13
2007.01.28
Опять Apache )))


3-1162584149
_Ламер_
2006-11-03 23:02
2007.01.28
IBX и юникод


1-1164875052
MetalFan
2006-11-30 11:24
2007.01.28
IHMTLDocument2.write


15-1167834056
Miau
2007-01-03 17:20
2007.01.28
Проблема с флэшками


15-1168176514
Ringo
2007-01-07 16:28
2007.01.28
Меня тут друг позвал помочь, мышь тормозит.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский