Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

HTTP server problemche

[es] :: Pascal / Delphi / Kylix :: HTTP server problemche

[ Pregleda: 2154 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon HTTP server problemche10.02.2005. u 22:30 - pre 233 meseci
E, ljudi, kako sa NMHTTPServ (ili kako se vec zove, standardna delphi http serv. komponenta) da prosledim binarni fajl (dakle da ga korisnik downloaduje). Znam sa response da vratim ... tekst, ali kako sliku ili fajl za download da posaljem?
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: HTTP server problemche10.02.2005. u 23:12 - pre 233 meseci
probaj sa TIndyHTTPServerom, on ima metod ServeFile koji radi sa svim fajlovima koliko znam
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche10.02.2005. u 23:25 - pre 233 meseci
to dolazi uz D6 enterprise? posto ga na google-u nema, a torry se ne odaziva...
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: HTTP server problemche10.02.2005. u 23:55 - pre 233 meseci
http://downloads.atozedsoftware.com/indy/indy10.0.52_d7.exe
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche11.02.2005. u 00:22 - pre 233 meseci
hvala, sad cu pogledati pa cu javiti
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche11.02.2005. u 00:51 - pre 233 meseci
e, uzhas sporo downloaduje ovo... pise 3.7kb a stoji na jednoj poziciji (15%) po 10ak minuta... nesto tu ne stima...

tih 15% - nije uvek isti broj...

edit: ima neki drugi URL?
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.35.EUnet.yu.



+1 Profil

icon Re: HTTP server problemche11.02.2005. u 09:18 - pre 233 meseci
Uz Delphi 7/2005 dolazi Indy. Mislim da definitivno treba da radis sa njim jer one NMxxx komponente nista ne valjaju. Indy je izmislio mrezu za njih, tako da ga definitivno treba preuzeti. Ja sam probao te NMxxx ranije i imao sam raznih problema, a najvise sto im nedostaje funkcionalnost.

Znaci, brzo na download.... :)
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche11.02.2005. u 13:50 - pre 233 meseci
Ljudi, ovako sam uspeo da pozovem download:
Code:

var fajl:TStream;
begin
//get file (as stream)
fajl:=TFileStream.Create('c:\arhiva.zip',fmOpenRead);
//download it
ResponseInfo.ContentType:='application/zip'; //ne znam tacno koji type za koju ekstenziju, ali sa ovim radi
ResponseInfo.Headers.Add('Content-Disposition: attachment; filename=nekoime.zip');
ResponseInfo.ContentStream:=fajla;


i downloaduje mi se nekoime.zip kad pozovem http://localhost:8080/ (imam vec jedan apache na portu 80, pa zato 8080)

E sad, sledeci kod ne radi, a ne znam zasto:
Code:

procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  RequestInfo: TIdHTTPRequestInfo; ResponseInfo: TIdHTTPResponseInfo);
var fale:string;
    fajl:TStream;
begin
if RequestInfo.Params.Count = 0 then ResponseInfo.ContentText:=html.Text //if no parameters supplied, list files :)
  else begin
    //get data
    if pos('info=',RequestInfo.Params.Text)>0 then begin
    fale:=StringReplace(RequestInfo.Params.Text,'info=','',[]);
    ResponseInfo.ContentText:=DisplayFileInfo(fale);
    end; //eo get data
    //send file
      if pos('get=',RequestInfo.Params.Text)>0 then begin
        fale:=StringReplace(RequestInfo.Params.Text,'get=','',[]);
        //get file (as stream)
        fajl:=TFileStream.Create(pchar(edit1.text+fale),fmOpenRead);
        //download it
        ResponseInfo.ContentType:='application/zip'; //zips are downloaded
        ResponseInfo.Headers.Add('Content-Disposition: attachment; filename='+ExtractFilePath(edit1.text+fale));
        ResponseInfo.ContentStream:=fajl;
      end; //eo send
  end; //eo else
end;


... e 'vako:
kad se pozove samo http://localhost:8080/ on vraca listu nekih fajlova (html.text)... i to radi... kad pozovem http://localhost:8080/?info=ime fajla.mp3, ono vraca tekst iz funkcije DisplayFileInfo, medjutim, kad pozovem http://localhost:8080/?get=ime fajla.mp3 (a edit1.text je npr 'c:\', fale je ime fajla (odstranjuje 'get='), dobijam gresku kako ne moze da otvori fajl, a 100% fajl postoji na odredjenoj lokaciji.

Moze mali tip...?

P.S. Ne komentarisite nacin na koji npr. odsecam string (sa stringreplace), posle cu optimizovati kod i sve ce biti 'po protokolu' :) - zanima me samo kako da pozovem download (mp3) fajla
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.29.eunet.yu.



+1 Profil

icon Re: HTTP server problemche12.02.2005. u 09:50 - pre 233 meseci
Pa prvo dodaj kod koji ce proveriti o kakvom nazivu fajla se radi.
Znaci ubaci:

Code:

procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  RequestInfo: TIdHTTPRequestInfo; ResponseInfo: TIdHTTPResponseInfo);
var fale:string;
    fajl:TStream;
begin
if RequestInfo.Params.Count = 0 then ResponseInfo.ContentText:=html.Text //if no parameters supplied, list files :)
  else begin
    //get data
    if pos('info=',RequestInfo.Params.Text)>0 then begin
    fale:=StringReplace(RequestInfo.Params.Text,'info=','',[]);
    ResponseInfo.ContentText:=DisplayFileInfo(fale);
    end; //eo get data
    //send file
      if pos('get=',RequestInfo.Params.Text)>0 then begin
        fale:=StringReplace(RequestInfo.Params.Text,'get=','',[]);
        //get file (as stream)
        ResponseInfo.ContentText:= '<HTML>"'+Edit1.Text+fale+'"</HTML>';
        {
        fajl:=TFileStream.Create(pchar(edit1.text+fale),fmOpenRead);
        //download it
        ResponseInfo.ContentType:='application/zip'; //zips are downloaded
        ResponseInfo.Headers.Add('Content-Disposition: attachment; filename='+ExtractFilePath(edit1.text+fale));
        ResponseInfo.ContentStream:=fajl;
        }
      end; //eo send
  end; //eo else
end;


Sada vidi sta ti vraca kao naziv fajla. Onda mozemo dalje. Zasto stavljas PChar u TFileStream.Create()? Skini i to.
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche12.02.2005. u 12:53 - pre 233 meseci
Vraca mi ovo:

"D:\muzika\Reggae\10 C'C'\10 C'C' - Dreadlock holliday.mp3 "

Isto tako unesem u Total Commander, pritisnem enter, i Winamp pusti pesmu (znaci u redu je).

Skinuo sam i pchar, ali isti slucaj...

imam jos jedan problem u ovom projektu, sa racunanjem velicine fajla, ali o tome cemo posle... (a na istu foru, kad stavim da izracuna velicinu nekog fajla on lepo odradi to, a u funkciji DisplayFileInfo pokazuje -1, kao da fajl ne postoji)
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.248.EUnet.yu.



+1 Profil

icon Re: HTTP server problemche12.02.2005. u 19:55 - pre 233 meseci
PChar je sporedna stvar u svemu samo sam zapazio. Totalno sam zaboravio da pitam ko ti i gde prijavljuje gresku: Da li to radi

TFileStream.Create() ili

je problem u:

ResponseInfo.Headers.Add('Content-Disposition: attachment; filename='+ExtractFilePath(edit1.text+fale));

jer tu prosledjujes putanju do fajla a ne sam naziv fajla...

itd.

Ajde sad...


 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche12.02.2005. u 22:30 - pre 233 meseci
to sam vec video (da je path) i ispravio, a gresku prijavljuje:
fajl:=TFileStream.Create(edit1.text+fale,fmOpenRead);

...to prijavljuje gresku, a u browser-u se ispise: Cannot open file D:\muzika\Reggae\Aswad\Live\Aswad - Drumm Bass Line.mp3
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.224.eunet.yu.



+1 Profil

icon Re: HTTP server problemche12.02.2005. u 23:15 - pre 233 meseci
Pa cini mi se da je cudno da tu dize exception jer onda ne bi mogao da izvrsi linije ispod TFileStream.Create() vec bi iskocio iz procedure na tom mestu i onda se postavlja pitanje kako browser uposte moze da napise onu poruku?

Code:

...
 fajl:=TFileStream.Create(pchar(edit1.text+fale),fmOpenRead);
 // ovo na dole se ne izvrsava ako je na prethodnoj liniji doslo do izuzetka.
        ResponseInfo.ContentType:='application/zip'; //zips are downloaded
        ResponseInfo.Headers.Add('Content-Disposition: attachment;  filename='+ExtractFilePath(edit1.text+fale));
        ResponseInfo.ContentStream:=fajl;
      end; //eo send


 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche12.02.2005. u 23:46 - pre 233 meseci
pa da, tek kad u delphiju ponovo pritisnem `play`, onda se ispise ono u browser-u

Sve mi je ovo cudno, jer fajl POSTOJI na odredjenoj lokaciji!!
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.97.EUnet.yu.



+1 Profil

icon Re: HTTP server problemche13.02.2005. u 11:58 - pre 233 meseci
Resenje tvog problema je:

Code:

fale:=Trim(StringReplace(ARequestInfo.Params.Text,'get=','',[]));
fajl:=TFileStream.Create(edit1.text+fale,fmOpenRead);


ovo radi kod mene. Znaci razmak koji se pojavljuje na kraju naziva treba skinuti.

A sto se tice izuzetka, on kada se desi u proceduri u metodu A:

Code:

...
begin
  MetodA;
  MetodB;
  MetodC;
end...


i nije tamo obradjen onda se metode B i C uposte ne izvrsavaju vec se iskace iz procedure. Trazi se prvi sledeci handler izuzetaka koji je definisan itd.
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.97.EUnet.yu.



+1 Profil

icon Re: HTTP server problemche13.02.2005. u 12:03 - pre 233 meseci
Resenje tvog problema je:

Code:

fale:=Trim(StringReplace(ARequestInfo.Params.Text,'get=','',[]));
fajl:=TFileStream.Create(edit1.text+fale,fmOpenRead);


ovo radi kod mene. Znaci razmak koji se pojavljuje na kraju naziva treba skinuti.

A sto se tice izuzetka, on kada se desi u proceduri u metodu A:

Code:

...
begin
  MetodA;
  MetodB;
  MetodC;
end...


i nije tamo obradjen onda se metode B i C uposte ne izvrsavaju vec se iskace iz procedure. Trazi se prvi sledeci handler izuzetaka koji je definisan itd.
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.97.EUnet.yu.



+1 Profil

icon Re: HTTP server problemche13.02.2005. u 12:04 - pre 233 meseci
Resenje tvog problema je:

Code:

fale:=Trim(StringReplace(ARequestInfo.Params.Text,'get=','',[]));
fajl:=TFileStream.Create(edit1.text+fale,fmOpenRead);


ovo radi kod mene. Znaci razmak koji se pojavljuje na kraju naziva treba skinuti.

A sto se tice izuzetka, on kada se desi u proceduri u metodu A:

Code:

...
begin
  MetodA;
  MetodB;
  MetodC;
end...


i nije tamo obradjen onda se metode B i C uposte ne izvrsavaju vec se iskace iz procedure. Trazi se prvi sledeci handler izuzetaka koji je definisan itd.
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Član broj: 32202
Poruke: 4391
*.blueisp.co.yu.

Sajt: https://avramovic.info


+46 Profil

icon Re: HTTP server problemche13.02.2005. u 13:45 - pre 233 meseci
pogledacu kasnije kad budem imao vremena pa cu ti javiti, ali verujem ja u tebe :)

edit: radi, hvala ti mnogo, mnogo
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: HTTP server problemche

[ Pregleda: 2154 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.