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!]