Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi browserdownload automatisch starten (https://www.delphipraxis.net/108262-browserdownload-automatisch-starten.html)

o0o 10. Feb 2008 10:59


browserdownload automatisch starten
 
hallo leutz, ich hab auf meiner form den embeddedwb und mich interessiert wie es geht dass der browser eine datei einfachso runterlaed wenn auf das link geklickt wurde:)

ich meine wenn man im browser zb auf den button "download" klickt dass die datei von alleine auf ein best. verzeichniss geladen wird ohne erst zu fragen ob und wo genau hin damit wie es der IE fuer gewoehnlich macht:)

waere euch sehr verbunden...da o0o

Andreas L. 10. Feb 2008 11:59

Re: browserdownload automatisch starten
 
Im OnBeforenavigate-Ereignis ein TIdHTTP-Objekt instantiieren und die in der URL-Konstante übergebene Adresse herunterladen. Die Konstante "Cancel" auf False setzen um den Download-Dialog vom IE zu blockieren. Ganz einfach also ;-)

o0o 10. Feb 2008 12:18

Re: browserdownload automatisch starten
 
lol naja thx fuer die antwort aber um ehrlich zu sein verstehe ich es nichtso^^

also ich meine wie ich es mache...hab vom browser nicht all zu viel ahnung.
wenn ja so easy ist haste vllcht ein beispiel auf lager?^^

da o0o

Andreas L. 10. Feb 2008 13:55

Re: browserdownload automatisch starten
 
Selektiere den Webbrowser auf deinen Form-Designer. Im Objektinspektor klickst du auf "Ereignisse" und dann beim OnbeforeNavigate im weißen Feld daneben doppelklicken. Jetzt folgendes reinschreiben:

Delphi-Quellcode:
var
dl: TidHttp;
fs: TFileStream;
NURL: String;
begin

NURL := URL; //Konstante vom Ereignis in einen String speichern
dl := TIdHTTP.create; //IdHTTP erstellen
fs := TFileStream.Create('C:\wodiedateihinsoll.txt', fmCreate); //FileStream erstellen und einen Pfad angeben, wo die Datei gespeichert werden soll.
dl.get(NURL, fs); //Saugen
dl.Free; //Speichern freigeben
fs.Free; // "
Cancel := True; //Webbrowser stoppen damit nicht der Download-Dialog kommt
end;
Um IdHttp benutzen zu können musst du die unit IdHttp und idMessages einbinden.

o0o 10. Feb 2008 14:11

Re: browserdownload automatisch starten
 
ich danke dir dass du dir die arbeit gemacht hast es so ausfuehrlich zu gestalten^^
aber was ich eig. brauch ist wenn ein download im browser gestarted wird einfach runtergeladen wird^^

bei deinem code koennte das sogar klappen nur das problem ist man kann nicht mehr surfen da alle sites runtergeladen werden^^

wenn du noch das hinbekommen koenntest waere ich dir sehr dankbar:)

da o0o

Andreas L. 10. Feb 2008 14:47

Re: browserdownload automatisch starten
 
Zitat:

Zitat von o0o
ich danke dir dass du dir die arbeit gemacht hast es so ausfuehrlich zu gestalten^^
aber was ich eig. brauch ist wenn ein download im browser gestarted wird einfach runtergeladen wird^^

bei deinem code koennte das sogar klappen nur das problem ist man kann nicht mehr surfen da alle sites runtergeladen werden^^

wenn du noch das hinbekommen koenntest waere ich dir sehr dankbar:)

da o0o

Streng doch mal das Teil zwischen deinen Ohren ein bisschen an ;-) Bau ne Abfrage ein:

Delphi-Quellcode:
if ExtractFileExt(NURL) = 'exe' then
begin
//saugen...
end;

o0o 10. Feb 2008 14:59

Re: browserdownload automatisch starten
 
joar wenn das so einfach waere wuerde ich jetzt nicht weiternerven:)

also ich hab das mal probiert:

Delphi-Quellcode:
if ExtractFileExt(NURL) = 'gz' then
begin
NURL := URL; //Konstante vom Ereignis in einen String speichern
dl := TIdHTTP.create; //IdHTTP erstellen
fs := TFileStream.Create('C:\backup.gz', fmCreate); //FileStream erstellen und einen Pfad angeben, wo die Datei gespeichert werden soll.
dl.get(NURL, fs); //Saugen
dl.Free; //Speichern freigeben
fs.Free; // "
Cancel := True; //Webbrowser stoppen damit nicht der Download-Dialog kommt
end;
aber der download dialog kommt immernoch...mach ich was falsch bzw was?^^

da o0o

Andreas L. 10. Feb 2008 15:11

Re: browserdownload automatisch starten
 
Zitat:

Zitat von o0o
joar wenn das so einfach waere wuerde ich jetzt nicht weiternerven:)

also ich hab das mal probiert:

Delphi-Quellcode:
if ExtractFileExt(NURL) = 'gz' then
begin
NURL := URL; //Konstante vom Ereignis in einen String speichern
dl := TIdHTTP.create; //IdHTTP erstellen
fs := TFileStream.Create('C:\backup.gz', fmCreate); //FileStream erstellen und einen Pfad angeben, wo die Datei gespeichert werden soll.
dl.get(NURL, fs); //Saugen
dl.Free; //Speichern freigeben
fs.Free; // "
Cancel := True; //Webbrowser stoppen damit nicht der Download-Dialog kommt
end;
aber der download dialog kommt immernoch...mach ich was falsch bzw was?^^

da o0o

Hast du dir schon mal den Rückgabewert von ExtractFileExt angeschaut? Vllt. wird der Punkt mit in den String eingefügt. Hab damit schon lange nichts mehr gemacht... probier mal = '.gz'

o0o 10. Feb 2008 15:31

Re: browserdownload automatisch starten
 
hmm also wenn ich ein punkt davor mache klappt es auch nicht:(
also wie ich mir den rueckgabewert anschaue ka ich habs mal damit probiert:

showmessage(ExtractFileExt(NURL)); und showmessage(NURL);

bei beiden war die msgbox leer...

da o0o

/edit:

ok ich habs jetzt soweit dass mir die dateiendung angezeigt wird...es ist .php^^
kann man da noch was machen?...

o0o

Andreas L. 10. Feb 2008 16:02

Re: browserdownload automatisch starten
 
Probier mal einen Link der direkt auf einen Datei zeigt. Du hast bisher wahrscheinlich nur Downloads über PHP-Scripte ausprobiert. Ansonsten bietet der WebBrowser so viele Ereignisse -> Schau dir das doch einfach mal an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.
Seite 1 von 2  1 2      

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