indy, webserwer, pobieranie pliku...

0

czesc!
sluchajcie, chcialem napisac prosty serwer http. spoko, wyswietlaja sie strony.
ale na stronie mam link do pliku i chce zeby po jego kliknieciu, po stronie klienta rozpoczelo sie pobieranie tego pliku.
jak to zrobic?
bo poki co, to zamiast zaczac pobierac plik, plik zaczyna sie wyswietlac w przegladarce jako tekst (czyli same znaczki ;/)

pomocy ;]

0

siemano, tutaj masz procedurę, która załaduje Ci do stringa link po najechaniu na niego:

procedure TfrmMyBrowser.WebBrowser1StatusTextChange(Sender: TObject;
  const Text: WideString);
var
  CurrentWB: TWebbrowser;
adresURL : string;
begin
  CurrentWB := GetCurrentWB;
  if Assigned(CurrentWB) then
  begin
    if TControl(CurrentWB).Hint = TControl(Sender).Hint then
      adresURL := Text;
  end;
end;

jak troszeczkę pomyślisz to zapiszesz link na stałe do zmiennej po kliknięciu.

Proste pobieranie plików możesz obsłużyć za pomocą kodu:

procedure TForm1.Button1Click(Sender: TObject); 
var 
str :TFileStream; 
File : file; 
sciezka : pchar;
begin 
sciezka := pchar(sciezka);

AssignFile(F, sciezka); 
Rewrite(File); 
CloseFile(File); 
str:=TFileStream.Create(str, fmOpenReadWrite); 
idhttp1.Get(AdresURL, str);
str.free;

Powinno działać. Podepnij jeszcze pod idHTTP to badzewne tIdCookieManager

0

nie nie nie nie....
nie zrozumiales mnie...

pisze serwer http: ktos wpisuje w przegladarce ip mojego komputera i otwiera mu sie strona internetowa (pobrana z mojego komputera).
na stronie jest link do pliku (np href="plik.zip"). plik tez jest na moim kompie.
chodzi o to zeby w momencie przejscia pod ades pliku (np 127.0.0.1/plik.zip) rozpoczelo sie jego pobieranie a nie wyswietlanie w przegladarce w postaci tekstu.

0

Aaaa xD wiem o co Ci chodzi ale wiecej Ci napisze jak bede w domu :)

0

ale ja pisze SERWER a nie klienta (przegladarke). twebbrowser jest klientem.

0

Musisz wysłać odpowiedni nagłówek do przeglądarki np. jeżeli chcesz otworzyć plik pdf to będzie
Content-type: application/pdf
Natomiast taki nagłówek:
Content-Type: application/x-unknown
Zmusi do pobrania pobrania pliku, bez względu na rodzaj.

Pozdrawiam

0

ooo! dzieki wielkie! :)

a jest mozliwosc wyswietlenia progressu wysylania pliku po stronie serwera?

1 użytkowników online, w tym zalogowanych: 0, gości: 1