|
|
|||||||||||||||
|
23.09.2007, 20:16 | #1 |
Registriert seit: 24.10.2004
Ort: Berlin-Lichterfelde
Beiträge: 974
|
Link zum Download eines Bildes setzen - wie?
Hallo!
Ausgangslage: Ich biete Bekannten ein paar Bilder online zum Anschauen an. Gleichzeitig sollen sie die Möglichkeit zum Download einer printfähigen Dateigröße erhalten. Dazu setze ich einen Button mit Link auf die größere Datei. Problem: Mir fehlt der PHP-Code, mit dem ich für so ein Bild einen Download setzen kann, der den Dialog "Speichen unter" öffnet, aber nicht das Bild im Fenster öffnet. Ich habe die Bilder wohlgemerkt nicht in einer Datenbank (wie hier das Forum), sondern ganz profan im Verzeichnis liegen. Geht das überhaupt mit ein bisschen PHP-Code unter dem Button oder komme ich um eine größere Lösung nicht drumrum? Herzlichen Dank schonmal, Ralf
__________________
www.disclaimerfrei.de - Für ein Web ohne Blabla www.tomcat06.de - Geocaching, that's fun! |
Sponsored Links | |
|
23.09.2007, 20:34 | #2 |
Registriert seit: 02.11.2006
Ort: Berlin
Beiträge: 11.088
|
Hallo Ralf,
eine ganz pragmatische Lösung, die immer funktioniert Setze den Link rein und schreibe in Klammern dahinter (rechte Maustaste - Bild speichern unter) oder sowas... Ansonsten, wenn du die eh händisch hochlädst. Verpack sie doch als ZIP, dann sollte der Browser automatisch den speichern-Dialog anzeigen... Viele Grüße Andreas
__________________
abgedunkelt.de |
23.09.2007, 20:53 | #3 | ||
Themenersteller
Registriert seit: 24.10.2004
Ort: Berlin-Lichterfelde
Beiträge: 974
|
Zitat:
Zitat:
Dank & Gruß, Ralf
__________________
www.disclaimerfrei.de - Für ein Web ohne Blabla www.tomcat06.de - Geocaching, that's fun! |
||
23.09.2007, 21:56 | #4 |
Registriert seit: 02.11.2006
Ort: Berlin
Beiträge: 11.088
|
Hallo Ralf,
ich verstehe, also eine wasserdichte Lösung... Ich habe so meine Zweifel, dass das geht, es wird immer irgendeinen Browser geben, der da rum zickt... Aber hier kannst du ja mal lesen, vielleicht ist es das was du suchst? http://www.php-faq.de/q/q-datei-download.html Viele Grüße Andreas
__________________
abgedunkelt.de |
24.09.2007, 09:06 | #5 | |
Registriert seit: 24.08.2005
Ort: Paderborn
Beiträge: 5.337
|
Zitat:
Code:
<?php // Pruefen, ob der Parameter 'bild' beim Aufrufen des Skripts gesetzt wurde if (isset ($_GET['bild'])) $bild = $_GET['bild']; elseif (isset ($_POST['bild'])) $bild = $_POST['bild']; if (isset ($bild)) { // Pruefen, ob es sich um ein jpg handelt und ob der Nutzer nicht versucht, // sich in einen anderen Ordner zu hangeln if (is_file ($bild) && strpos ($bild, '/') == 0 && strpos ($bild, 'jpg') != 0) { // Laden des Bildes $ausgabe = imagecreatefromjpeg ($bild); // Header an den Browser schicken header ("Content-type: image/jpeg"); header ("Content-Disposition: attachment; filename=".$bild.".jpg"); // Bild an den Browser schicken imagejpeg ($ausgabe); } else echo ("Keine erlaubte Datei!"); } ?> HTH Tobi |
|
Sponsored Links | |
|
24.09.2007, 14:52 | #6 |
Themenersteller
Registriert seit: 24.10.2004
Ort: Berlin-Lichterfelde
Beiträge: 974
|
@Tobi:
Vielen Dank Das ist das erste Skript dieser Art, das überhaupt sowas ähnliches macht was ich suche. Auf den zahlreichen Internetseiten zu PHP-Skripten habe ich reichlich Schnickschack gefunden, den ich nicht brauche. Dieses Skript funzt im Prinzip, zeigt aber 3 Merkwürdigkeiten: 1. Es öffnet sich ein weiteres, leeres Browserfenster 2. Das Bild erhält eine weitere Endung '.jpg', also doppelt 3. Das Bild wird zwar komplett heruntergeladen, hat aber nur noch die halbe Dateigröße. Das ist einerseits löblich, aber ich kontrolliere die Dateigrößen gern selbst und hatte sie bereits größenoptimiert. Hast du das selbst geschrieben oder irgendwoher? Die Sicherheitsfeatures brauche ich übrigens nicht, die könnten raus. @baerlichkeit: Die Köhntopp-Seite bietet sowas ähnliches, aber zu umständlich für mich. Die Beschreibung wurde mir auch nicht ganz klar, ich bin (noch) kein PHP-Kenner. Gruß, Ralf
__________________
www.disclaimerfrei.de - Für ein Web ohne Blabla www.tomcat06.de - Geocaching, that's fun! Geändert von Bendix (24.09.2007 um 14:57 Uhr) |
24.09.2007, 15:29 | #7 | |||||
Registriert seit: 24.08.2005
Ort: Paderborn
Beiträge: 5.337
|
Zitat:
Zitat:
Zitat:
Hier mein Skript damit: Code:
<?php // Pruefen, ob der Parameter 'bild' beim Aufrufen des Skripts gesetzt wurde if (isset ($_GET['bild'])) $bild = $_GET['bild']; elseif (isset ($_POST['bild'])) $bild = $_POST['bild']; if (isset ($bild)) { // Pruefen, ob es sich um ein jpg handelt und ob der Nutzer nicht versucht, // sich in einen anderen Ordner zu hangeln if (is_file ($bild) && strpos ($bild, '/') == 0 && strpos ($bild, 'jpg') != 0) { // Header an den Browser schicken header ("Content-type: image/jpeg"); header ("Content-Disposition: attachment; filename=".$bild); readfile ($bild); } else echo ("Keine erlaubte Datei!"); } ?> Zitat:
Zitat:
Tobi |
|||||
24.09.2007, 20:25 | #8 |
Themenersteller
Registriert seit: 24.10.2004
Ort: Berlin-Lichterfelde
Beiträge: 974
|
Danke, Sir Tobi, das klappt prima. Die Öffnung eines neuen Fensters/Tabs kam, weil ich noch "target='_blank'" stehen hatte.
Das war ja direkt eine honorarfähige Auftragsleistung. Machst du sowas den ganzen Tag? Ich würde dir im Gegenzug gern einen Gefallen tun, wenns denn je dazu käme. Gruß, Ralf
__________________
www.disclaimerfrei.de - Für ein Web ohne Blabla www.tomcat06.de - Geocaching, that's fun! |
24.09.2007, 20:34 | #9 | ||
Registriert seit: 24.08.2005
Ort: Paderborn
Beiträge: 5.337
|
Nö, das war gerade richtig heute morgen. :-)
Zitat:
Zitat:
Tobi |
||
|
|
|