Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Datei von Jimdo herunterladen / alternative Methode (https://www.delphipraxis.net/166386-datei-von-jimdo-herunterladen-alternative-methode.html)

ByTheTime 10. Feb 2012 21:03

Datei von Jimdo herunterladen / alternative Methode
 
Liebe DP'ler,
das hört sich jetzt vllt. lächerlich an, aber ich habe es noch nicht einmal geschafft Daten zu übertragen/herunterzuladen, etc. :evil::oops: !!! Ich würde nähmlich gerne einen Updater für mein bereits existierendes Projekt entwickeln. Meine Anwendung kann man auf Jimdo herunterladen (nicht öffentlich, nur für best. Personen, mit ist keine einfachere Sharing-Methode in den Sinn gekommen). Jetzt will ich irgendwie erreichen, das mein Updater eine Datei herunterläd, egal ob von Jimdo, oder einem Server, denn ich selbst zusammenbaue. Aber bisher sind alle meine Versuche, eine Datei zu übertragen/herunterzuladen gescheitert! Das einzige was ich bisher erreicht habe, war ein Client/Server-Chat mit den Sockets :/ Dabei wird es immer so einfach beschrieben,aber ich bekomme es einfach nciht hin!

Bitte helft mir mal auf die Sprünge, :?
Lukas

sx2008 10. Feb 2012 21:49

AW: Datei von Jimdo herunterladen / alternative Methode
 
Hier ist mal die einfachste Art eine Datei über http oder https herunterzuladen:
Delphi-Quellcode:
uses UrlMon; // Unit UrlMon muss eingebunden werden

function DownLoadInternetFile(const SourceUrl, DestFilename : String): Boolean;
const S_OK = 0;
begin
   Result := URLDownloadToFile(nil,PChar(SourceUrl),PChar(DestFilename),0,nil) = S_OK;
end;

procedure Beispiel;
begin
  if DownLoadInternetFile('http://meinDings.jimdo.de/Software.zip', 'C:\software.zip') then
    ShowMessage('download war ok');
end;

ByTheTime 10. Feb 2012 21:57

AW: Datei von Jimdo herunterladen / alternative Methode
 
Ja, aber so einfach ist das jetzt auch wieder nicht... http://meindings.jimdo.com/downlaod/software.zip existiert so nicht. Ich muss erst einen Link anklicken, der ungefähr so aussieht: meindings.jimdo.com/app/download/5540523375/4f359201/6fb0526966bfe73d98e445c9813182258c74724f/SoftWare+Setup+1.1.5.1.zip?t=1328910252

Und wenn ich den wie in deinem Beispiel einfüge, geht es nicht.

sx2008 10. Feb 2012 22:09

AW: Datei von Jimdo herunterladen / alternative Methode
 
Also Weiterleitungen oder Javascript wird von der Funktion URLDownloadToFile() nicht unterstützt.
Du müsstest schon die Ziel-URL direkt angeben.
Ansonsten musst du herausfinden, ob ein Redirekt oder Javascript verwendet wird und ob du das evtl. auch umgehen kannst.

Sir Rufo 10. Feb 2012 22:17

AW: Datei von Jimdo herunterladen / alternative Methode
 
Zitat:

Zitat von sx2008 (Beitrag 1150404)
Also Weiterleitungen oder Javascript wird von der Funktion URLDownloadToFile() nicht unterstützt.
Du müsstest schon die Ziel-URL direkt angeben.
Ansonsten musst du herausfinden, ob ein Redirekt oder Javascript verwendet wird und ob du das evtl. auch umgehen kannst.

Oder eben dafür z.B. die Indys benutzen, die Komponente TIdHttp unterstützt das Weiterleiten (wenn die entsprechende Property gesetzt ist)

himitsu 10. Feb 2012 22:48

AW: Datei von Jimdo herunterladen / alternative Methode
 
Zitat:

Zitat von AGB
5.5. Der Jimdo-Nutzer verpflichtet sich, nicht von anderen Webseiten direkt auf Downloads auf seiner Jimdo-Webseite zu verlinken.

Ich setze jetzt einfach mal ein Programm mit einer anderen Webseite gleich.

Und geht auch davon aus, daß dieser Redirekt absichtlich gemacht wird.

ByTheTime 11. Feb 2012 16:21

AW: Datei von Jimdo herunterladen / alternative Methode
 
Also ich komme einfach nicht weiter... vllt. liegt es auch an Jimdo?! Aber das ist genauso eine Internetseite, wie was weiß ich auch.
Hier mal mein "Ansatz" :stupid:, bedient habe ich mich hier:
Delphi-Quellcode:
procedure TForm1.BtnDownloadClick(Sender: TObject);
var
  Stream: TFileStream;
begin
 //IdHTTP1.HandelRedirects := true; //im OI gesetzt
 Stream := TFileStream.Create('D:\MyProg.zip', fmCreate); //Dort wo MyProg.zip steht, muss das der selbe Dateiname sien wie auf dem Server?
 //IdHTTP1.Host:='host.de'; //Existiert in Indy10 nichtmehr, habe das so gelöst (siehe Zeile drunter):
 IdHTTP1.Connect(http://myprog.jimdo.com/donwload/); //Muss ich auf die Startseite connecten (ohne 'download/')?
 IdHTTP1.Get('myprog.jimdo.com/app/download/5540523375/4f3694fe/c72b229b4d84417635a7c3ad99f4e3b0e93d406c/myprog.zip?t=1328975213', Stream); //Hier liegt eigentlich mein Hauptproblem. Was soll hier rein? Der Link (Weiterleitung)?
 IdHTTP1.Disconnect;
end;

sx2008 11. Feb 2012 17:21

AW: Datei von Jimdo herunterladen / alternative Methode
 
Auf Jimdo.com wird sehr gerne Javascript eingesetzt, so wie das eben im Web2.0-Zeitalter modern ist.
Indy kann kein Javascript interpretieren und damit kann auch nichts heruntergeladen werden, dass von Javascript abhängt.
Auch wenn der Download von Cookies abhängig ist, der zuvor in einer Anmeldung gesetzt wurde wird es schwierig.

jokerfacehro 17. Feb 2012 14:28

AW: Datei von Jimdo herunterladen / alternative Methode
 
Dein ganzes Thema ist ziemlich aufwendig.

Entweder du suchst dir nen FileHoster, der den Download einfacher gestaltet
oder du musst dir ein kleines script schreiben, dass damit umgehen kann.

da bleibt die frage offen, soll das script jetzt wirklich nur für diesen host funktionieren, dann kann mans quick-n-dirty machen, oder soll bei nem hosterwechsel das script anpassungsfähig sein ;)

ich habe für solche sachen immer meinen eigenen server für updates genutzt


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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