Downloadnamen ändern?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Downloadnamen ändern?

    Ich habe ein Uploadformular geschrieben, dass in eine Tabelle IDs anlegt, also erste Upload hat ID=1, zweiter ID=2, und das geht immer so weiter...nun da Dateinamen doppelt vorkommen könnten, wenn Benutzer was uppen, hab ich mir gedacht, die Dateien immer unter ihrer Upload ID zu speichern und ein Variable zu benutzen, indem der richtige Dateiname gespeichert wird...

    also ein Besipiel:

    bild.gif --> ID=24

    24.gif --> filename = bild


    beim runterladen der Datei sollen, die aber nicht die Datei 24.gif runterladen, sondern die Datei soll dann halt bild.gif heißen....wie kann ich das machen, außer die Datei 24.gif in nen temp Ordner zu kopieren und dort in bild.gif umzubenennen? Denn was ist, wenn das paar User gleichzeitig runterladen wollen, dann könnte es Probleme geben...

    Ich hatte auch shcon gedacht für jedes Bild einen Ordner für die ID zu erstellen...also uploadverzeichnis/ID/bild.gif zum Beispiel...aber dann hätte man zuviele Verzeichnisse... :(

    Hoffe ihr PHP Spezialisten könnt mir helfen! :)
  • Ich würde das ganz anders angehen:

    Du speicherst die Images einfach nach folgender Konvention:

    id_name.endung

    zb.

    46_bild.jpg

    1. Du hast dann ie eindeutigkeit gewährleistet :D
    2. Du musst die Bilder nicht redundant speichern
    3. Du kannst sie so zum DL anbieten

    Wenn dir das nicht gefällt, dann würde ich beim hochladen noch den Bildnamen in der DB speichern, und nur bei Namensgleichheit die ID davor hängen.
    Dann kannst du mit Hilfe der DB die Bilder als ID´s abstrahieren, und schreibst dir noch ne kleine Funktion, die beim ausgeben der Bilder die ID in den Namen wandelt.

    Das wäre dann ein wenig komplexer, sollte aber auch klappen. :D
  • Danke für eure Tips! :)

    Aber wie kann ich machen, dass wenn man nen Link anklickt wie diesen z.B. :

    h**p://www.meineseite.de/downloads/download.php?downloadid=13207&sid=

    Das dann z.B. sofort das IE Download Fensterchen erscheint, dass die Datei von h**p://www.meineseite.de/downloads/warcraft_trailer.zip

    oder so runterlädt?
  • Du speicherst DL_ID, DL_URL und DL_Bezeichnung in der DB

    Dein html muss dann so aussehen:

    Quellcode

    1. <a href="DL_URL">DL_Bezeichnung</a>


    Bei allen anderen lösungen müsstest du noch einen Schritt dazwischen machen .. Per JS PopUp o.ä.

    Die ID ist ja in erster Linie nur dafür gut, deinen DL eindeutig zu identifizieren .. zb. von ner Übersichtsseite auf ne DetailInfo Seite, oder um die DL´s in richtiger Reihenfolge auszugeben.
  • oder geht das mit :

    <html>
    <head>
    <title>Download Redirect</title>
    <meta http-equiv="Refresh" content="0; URL=DL_URL">
    </head>
    <body>
    </body>
    </html>

    Ich möchte nicht, dass man so leicht den richtigen Pfad erkennt...
  • Ja, so kannst du es auch machen.

    Und absolut jeder vernünftige DL Manager oder Browser zeigt sowieso beim DL den Quellpfad an!

    Suchst du evtl. so was wie einen DL Protector?
    zb. dass deine DL URL einmalig generiert wird, die dann nicht mehr gültig ist für alle anderen bzw. Suchmaschinen?
  • Da im moment nur der erste Link von Hotscripts funktioniert hat, hab ich den genommen, aber das Script funktioniert bei mir nicht :(

    PHP-Quellcode

    1. <?php
    2. ///////////////////////////////////////////////
    3. // //
    4. // Download Protector v 1.1 //
    5. // ----------------------------------------- //
    6. // by Graeme ([email protected]) //
    7. // [url]http://www.phpscriptcenter.com[/url] //
    8. // //////////////////////////////
    9. // PHP Script CENTER offers no warranties on this script. //
    10. // The owner/licensee of the script is solely responsible for any //
    11. // problems caused by installation of the script or use of the script //
    12. // //
    13. // All copyright notices regarding Download Protector, must remain //
    14. // intact on the scripts and in the HTML for the scripts. //
    15. // //
    16. // (c) Copyright 2001 PHP Script CENTER //
    17. // //
    18. // For more info on Download Protector, //
    19. // see [url]http://www.phpscriptcenter.com/downloadprotector.php[/url] //
    20. // //
    21. ///////////////////////////////////////////////////////////////////////////
    22. $ADMIN[defaulturl] = "http://phpscriptcenter.com";
    23. $okaysites = array("http://phpscriptcenter.com","http://www.phpscriptcenter.com");
    24. $ADMIN[url_1] = "http://www.phpscriptcenter.com/download.php3?product=";
    25. $ADMIN[url_2] = "http://downloads.com";
    26. $ADMIN[url_3] = "http://downloads.com/new";
    27. //////////////////////////////////////////////////////
    28. $reffer = $HTTP_REFERER;
    29. if($reffer) {
    30. $yes = 0;
    31. while(list($domain, $subarray) = each($okaysites)) {
    32. if (ereg("$reffer",$subarray)) {
    33. $yes = 1;
    34. }
    35. }
    36. $theu = "url"."_"."$site";
    37. if ($ADMIN[$theu] AND $yes == 1) {
    38. header("Location: $ADMIN[$theu]/$file");
    39. } else {
    40. header("Location: $ADMIN[defaulturl]");
    41. }
    42. } else {
    43. header("Location: $ADMIN[defaulturl]");
    44. }
    45. ?>
    Alles anzeigen


    Der gibt bei jedem name[blabla] nur das erste Zeichen immer aus, wenn ich ein Test gemacht hab...
    also der linkt einen immer nur zum ersten Zeichen, also statt http.... will er einen nur zu h linken... :(
    Ich kenne mcih in PHP leider nicht so gut mit Arrays aus...wäre supernett, wenn einer den Fehler korrigieren könnte... :)