kostenloser Webspace werbefrei: lima-city


Datei downloaden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    samson

    samson hat kostenlosen Webspace.

    hi,
    wie kann man dateien über PHP downloaden ohne das der User mitbekommt wo die Datei wirklich liegt?

    Danke
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. naja, da gibts die variante wie sie oft genutzt wird... du schreibst die dl´s in ne datenbank und rufst dann den dl link per id ab oder so ähnlich... das der link dann so im etwa aussieht...

    http://www.deineseite.de/download.php?id=2

    indem du dann das öffnen dieser datei im script versuchst, meckert der browser ob es geöffnet werden soll odeer gespeichert (glaub ich jetz zumindest)

    allerdings bekommt man dadurch als etwas erfahrener immernoch den urspungsort der datei raus...

    was anderes is mir jetz nich auf dei schnelle eingefallen ;-)

    mfg
  4. Mit modrewrite müsste das doch eigentlich gehen, oder?

    Beim modrewriting bekommt ja der Client nichts mit vom korrekten Zielpfad.

    Ich hoffe mal ich rede hier keinen Unsinn, aber das gleiche Prinzip nutzt man ja auch um Google (oder auch anderen :wink:) dynamische Adressen zu verheimlichen und nette statische Seiten daraus zu machen. Der Client bekommt davon nichts mit.

    Du könntest dir jetzt was für deine Downloads überlegen. Vielleicht das du den Speicherort der DAtei als md5 Schlüssel abfragst oder was weiß ich. Da hilft nur Kreativität :)

    Gruß Tobi
  5. Autor dieses Themas

    samson

    samson hat kostenlosen Webspace.

    und wie geht das mit modewriten?
  6. c****r

    Es gibt ja auch sogenannte Download Scripts, die du dir dann installierst ... die haben 'n clickcounter uvm. und sehen auch noch ziemlich gut aus :)

    Einfach googlen!
  7. d************n

    schau mal hier: http://www.modrewrite.de/

    dominochampion
  8. t****u

    Der folgende Quelltext wird dir helfen. Beachte, dass davor und danach keine Ausgabe (echo,print,...) erfolgen sollte.

    Über eine id wird eine Zahl übergeben. Aus einem Array, in dem alle Dateien, die downloadbar sind, wird dann die entsprechende Datei ausgewählt.

    Bisher wird bei dem Quelltext der Original-Dateiname ausgeliefert (siehe Zeile 12). Ich würde dir empfehlen diese mit
    <?php header('Content-Disposition: attachment; filename=datei'.$id.'.'.$ft); ?>
    zu ersetzen. Die Datei trägt dann den Namen "Datei" + Nummer + Dateiendung.

    <?php
    
    $id=$_GET['id'];
    
    $array = array('datei1.php','datei2.php','bild3.gif','datei4.html');
    $file=$array[$id];
    
    	$ft = substr(strtolower(strrchr($file, '.')),1);
    	$conttype = 'application/';
    	if(in_array($ft,array('jpg','jpeg','png','gif'))){$conttype='image/';}
    	header('Content-type: '.$conttype.$ft);
    	header('Content-Disposition: attachment; filename='.basename($file));
    	readfile($file);
    ?>
  9. Mit jedem Filetransfair wird der Ort Bekannt unter dem die Datei liegt, spätestens wenn die Übertragung startet.
    Als Abhilfe würde mir höchstens ein Skript einfallen, dass die Dateien vorübergehend in einen extra ordner kopiert, aber das geht auch nur wenn der Safemode deaktiviert ist.
    Ansonsten, wenns keine Allzugroßen Dateien sind kannst du sie ja als Mail Verschicken, sollte über PHP ohne weiteres möglich sein.
    Du kannst die Dateien natürlich auch in einer Datenbank ablegen (gibt ein extra Binärformat für sowas) und holst sie Dynamisch von dort. Allerdings geht diese Lösung ziemlich auf die Serverlast, in sofern kann es eben sein, dass du dir einen Anpfiff vom Betreiber einfängst.

    Obwohl stimmt, muss mich korrigieren der Ansatz von tuvalu funktioniert
    hatte das readfile übersehen.

    Beitrag geaendert: 23.3.2007 15:18:30 von keiax
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!