Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi filename beim download für indy http bekommen (https://www.delphipraxis.net/46393-filename-beim-download-fuer-indy-http-bekommen.html)

Arnulf 24. Mai 2005 12:34


filename beim download für indy http bekommen
 
hallo
Ich hab das problem, daß ich den filenamen brauche der runter geladen wird.
Ich lade dateien über indy http runter :

Delphi-Quellcode:
lStream:=TFileStream.Create(destfile, fmCreate or fmShareDenyWrite);
try
idHttp.Get('http://www.gamehost.biz/download.php?product='+productcode+'&mode=download',lStream);
finally
lStream.Free;
end;
destfile ist also der filename.
bisher war es kein problem, weil ich immer wusste was runter geladen wird.

Aber jetzt wird das ziel von einem server festgelegt und auch der dateiname ist da nicht bekannt.
Gibts hier eine möglichkeit - erst einmal zu schauen wie die datei heißt und die danach runterzuladen.
Ich habs über einen filestream gemacht, weil ich es nicht besser wusste - vielleich gibts ja auch hier andere möglichkeiten :).

Danke
Arnulf

Arnulf 24. Mai 2005 20:13

Re: filename beim download für indy http bekommen
 
hm ... gibt es wirklich keine möglichkeit?
ich versuch mal etwas genauer zu schildern worum es geht.
ich bekomme einen link zu einer datei.

Ich weiß aber nicht, ob das eine php download seite oder ein dirrecter link ist.
bei einem dirrekten link kann ich es ja so machen (ich geb zu ist ne faule methode :) aber lustig):

Delphi-Quellcode:
name := UnixPathToDosPath(maploadlocation);
name := extractfilename(name);
damit kann ich dann
Delphi-Quellcode:
lStream:=TFileStream.Create(mappath + name, fmCreate or fmShareDenyWrite);
und letzten endes hald mit get das file holen.

anders schauts aber aus wenn ich eine php download page hab.
dann muß ich beim indy redirect einschalten.
ich hab zwar ein onredirect event, aber da ist es doch schon zu spät, da kann ich ja den namen des files nicht mehr bekommen und meinen filestream erstellen :(.

Delphi-Quellcode:
idhttp.get ('http://www.brothers-of-death.de/include.php?path=content/download.php&contentid=83&download=go&mirror=1',lstram);
ich kann es ja mal in einen memory stream speichern oder als download.tmp und danach als richtige datei, aber ich bräuchte dann immer noch den richtigen link um den filenamen zu bekommen.
Aber irgendwie müssen das ja auch die webbroser machen, daß die vorher wissen wie die datei heißen wird.
Irgendwelche ideen?
Arnulf

Luckie 24. Mai 2005 20:23

Re: filename beim download für indy http bekommen
 
Zu den Indys gibt es Demos. Werf da mal einen Blick rein. Und bemüh mal die Foresuchen, eventuell wirst du da schon fündig.

Arnulf 25. Mai 2005 21:40

Re: filename beim download für indy http bekommen
 
lo
also die forensuche hab ich bemüht - gegooglt hab ich auch ... ja die indy demos hab ich noch nicht probiert...
Ich schau mal.
Ich hab es jedenfalls mal so gemacht wie ich oben geschrieben hab - also im onredirect event hald den string nochmals zerlegt und damit hab ich meinen filenamen.
Allerdings kann sich der benutzer da nicht mehr entscheiden ob er das runterladen will :) lol - was ja schlecht ist.

Also such ich immer noch nach einer lösung, aber ich steh nicht mehr so unter druck, weil ich das mal umgehen konnte.

Wenns also aktuell was gibt zu dem thema immer her damit :) - ich schau inzwischen mal nach den indy demos.

cu
Arnulf

Arnulf 25. Mai 2005 22:35

Re: filename beim download für indy http bekommen
 
Hi
naja mit der forensuche hast wohl recht gehabt :)
aber man muß hald wissen wonach man sucht
idhttp.head wäre richtig gewesen.

damit hat sich das ratespielchen erledigt.
Danke
Arnulf


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz