PHP: Temp. Ordner auf Download-Server erstellen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bearbeiten
code
dank
disposition
ewigen wartezeit
file
header
http
information
jemand
kennen
kopieren
ordner
originale datei
originale url
server
transfer
type
url
verbindung
-
Hallo!
Ist es möglich mit einem PHP-Script eine Verbindung zum Download-Server herzustellen um dort Ordner zu erstellen und so? Ich bräuchte das für ein Download-Script, habe aber bis jetzt nichts brauchbares gefunden.. Nicht einmal Informationen dazu wie man die Verbindung zu einem aderen Server (außer MySQL) herstellt.
Also ist das möglich und wenn ja wie? Kennt vielleicht jemand ein Totorial?
Ich möchte nämlich verhindern, dass die Downloads direkt aufgerufen werden können (z.B. durch Weitergabe des Links) und möchte dazu die originale Datei mittels PHP in einen auch mit dem Script erstellten temporären Ordner kopieren, von dort zum Download freigeben und dann den Ordner wieder löschen lassen.
So denk ich mir das jedenfalls. Was sagt ihr dazu? Sollte das so ohne Probleme funktionieren oder wird das zu einer ewigen Wartezeit vor dem Download führen?
Danke im Voraus!
Beitrag zuletzt geändert: 11.6.2012 22:39:39 von yorecords -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du willst also nur um die originale URL zu verschleiern das File in einem temp-Ordner kopieren und nach einem Download wieder löschen? Und das für jeden neuen Download? Oo
Da wäre es ja wohl besser ein "Proxy-Script" zu schreiben das den Download startet.
<?php $file = 'http://download.lima-city.de/XXX/XXX.XXX'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.end(explode('/', parse_url($file, PHP_URL_PATH)))); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; ?>
$file kannst du dann auf die URL bearbeiten die für dich passt. Damit ist die originale URL schon mal nicht sichtbar.
Und damit das Script nun nicht öfters aufgerufen werden kann, kannst du alles mögliche einbauen was dir einfällt.
zB einen einmaligen Download-Key den du per _GET übergibst. -
philippkern schrieb:
Du willst also nur um die originale URL zu verschleiern das File in einem temp-Ordner kopieren und nach einem Download wieder löschen? Und das für jeden neuen Download? Oo
Da wäre es ja wohl besser ein "Proxy-Script" zu schreiben das den Download startet.
<?php $file = 'http://download.lima-city.de/XXX/XXX.XXX'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.end(explode('/', parse_url($file, PHP_URL_PATH)))); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; ?>
$file kannst du dann auf die URL bearbeiten die für dich passt. Damit ist die originale URL schon mal nicht sichtbar.
Und damit das Script nun nicht öfters aufgerufen werden kann, kannst du alles mögliche einbauen was dir einfällt.
zB einen einmaligen Download-Key den du per _GET übergibst.
Danke für die Antwort!
So etwas hab ich schon versucht, hat aber irgendwie nicht funktioniert.. Ich werd es mit deinem Script noch einmal versuchen.
Ich übergebe den Download-Code sowieso schon per Session. Daran sollte es nicht scheitern. Bin gespannt.
Edit:
Es funktioniert! Vielen Dank!
Aber was meinst du mit
philippkern schrieb:
$file kannst du dann auf die URL bearbeiten die für dich passt.
$file ist bei mir jetzt der Download-Link. Wenn ich da irgendwas anderes reinschreiben würde, würde das Script ja den Download-Link nicht kennen.
Beitrag zuletzt geändert: 12.6.2012 16:44:49 von yorecords -
yorecords schrieb:
...
Aber was meinst du mit
philippkern schrieb:
$file kannst du dann auf die URL bearbeiten die für dich passt.
$file ist bei mir jetzt der Download-Link. Wenn ich da irgendwas anderes reinschreiben würde, würde das Script ja den Download-Link nicht kennen.
Ja ich meinte du musst da deinen DL-Link reinschreiben. Da ich ja nur XXX als Beispiel stehen habe. ;)
Passt schon wie du es jetzt hast. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage