Problem mit Download Dialog

BillaBong

Erfahrenes Mitglied
Hallo,

ich habe ein Problem, und war möchte ich ein skript machen das mir Dateien Herunterläd. Das Problem ist das die Dateipfade durch solche

PHP:
http://portalxy.de/download.php?datei=1234566

Links nicht eindeutig sind. Rufe ich die url auf ( hier nur ein Beispiel ) wird mir die Datei zum Download angeboten, da die Header so manipuliert wurde. Ich bräuchte jetzt ein Skript das mir den link wo die Datei wirklich her kommt sucht. Hat jemand eine Idee wie man soetwas verwirklichen könnte.
 
Ich verstehe dich nicht ganz.
Hast du mehrere Ordner, in denen die Dateien gespeichert sind und das PHP-Skript "weiß" nicht wo die Datei 123 gespeichert ist?
 
nein ^^ ich möchte mir Dateien, wie z.B. jetzt hier von Chip automatisch downloaden in dem ich den Link übergebe.


Also ich möchte von einem Externen Server was runterladen wo ein Download Dialog aufgeht.

PHP:
$url = "http://portalxy.de/download.php?datei=1234566";

$homepage = file_get_contents($url);
echo $homepage;

sowas wie hier, nur geht das ja leider nicht. Weisst du was ich meine ?
 
Hi

höchstwarscheinlich wird chip das ganze in einer Datenbank speichern. Das Downloadscript holt sich dann den Dateinamen mit der id 12345 aus der Datenbank. Da wirst du nicht herankommen. Was wäre denn das Problem einfach auf den Downloadbutton zu klicken? Soweit ich weiß hat Chip nicht mal eine Wartezeit.
 
@timestamp:
Eben nicht. Falls bei Chip der Download fehlschlägt, kann man noch auf den Direktlink klicken.
Hier ein PHP-Skript, dass CCleaner von Chip als Download anbietet:
PHP:
<?php
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="ccleaner.exe"');
$content = file_get_contents("http://dl.cdn.chip.de/downloads/1671596/ccsetup231_slim.exe?1274785248-1274792748-a12336-B-5bfe8e36455da536614dc6ae05097124.exe");
echo $content;
?>

Die Adresse bei file_get_contents entspricht dem Direktlink!

// EDIT: Bei anderen Dateitypen (z.B. *.xls oder *.doc) musst du den Mimetyp anpassen
 
chip war nur ein beispiel dort wo ich die dateien runterladen möchte gibt es keinen download link. Es pop halt nur der Download dialog auf. Und in dieser php Datei die das aufpopen des Download Dialogs verursacht stehen, warscheinlich nur header informationen, diese nehmen sich die Dateipfade aus einer Datenbank. Aber trotzdem muss der Browser ja irgendwie mitgetielt bekommen wo die Datei nun wirklich liegt, damit er sie auch wirklich runterladen kann. Und genau an diese Pfadangaben möchte ich gerne herankommen. Was dagegenspricht auf ein Download Link zu klicken bzw den Download Dialog zu bestätigen ist das ich diesen vorgang automatisieren möchte.
 
Das wirst du mMn nicht einfach so herausfinden können. Du schickst eine Anfrage mit einer ID an einen Server. Dieser ist für dich eine Blackbox. Zurück kommt eine Datei mit einem Header. Ob die Datei auf einem Server liegt, oder gerade generiert wurde oder aus eine Datenbank stammt, kannst du nicht herausfinden. Der Direktlink den es manchmal gibt.... nun, da hilft nur die HTML-Seite zu parsen und den Link zu finden.

Viel vergnügen
 
Angenommen man hat folgendes PHP-Skript, dass die Datei aus einer DB holt...
PHP:
<?php
// download.php?fileId=12345

// ...Header setzten...
echo GetFileFromDB($_GET['fileId']);  // Aus Datenbank holen (nur ein Beispiel)
?>
...dann kann man einfach file_get_contents("http://www.domain.de/download.php?fileId=12345") aufrufen!

@BillaBong: Die Pfadangabe ist hier z.B. download.php?fieldId=12345
 
Zurück