Wallpaper zum Download anbieten

Html

Erfahrenes Mitglied
Hallo, habe ein Wallpaper mit Photoshop erstellt und das ganze als .jpg Datei gespeichert.
Nun möchte ich dieses Wallpaper auf meiner Homepage als Download anbieten.

Schreibe ich aber nun einen Link mit dem Verweis auf das Wallpaper, wird das Bild in einem neuen Fenster geöffnet. Es soll aber statt dessen diesen Windows-Fenster erscheinen( Öffnen mit: / Speichern unter)

Wie lässt sich das realisieren?


mfg,Olli
 
Zuletzt bearbeitet:
Also eine HTML Lösung kenne ich nicht. Aber mit PHP geht das.

PHP:
<?php
//Sag dem Browser um welche Dateiart es sich handelt
//Ich bin mir gerade nicht sicher ob das benötigt wird wenn die Datei unverändert eingelesen wird ? Hab mich nie wirklich mit PHP & Bildern auseinandergesetzt :D
header('Content-type: image/jpeg');

//Zwingen wir ihm unseren Willen auf (den Download)
header('Content-Disposition: attachment; filename="wallpaper.jpg"');

//Und wie heist die Datei auf dem Server?
readfile('wallpaper.jpg');
?>

Das ganze dann zB als download_wallpaper.php abspeichern. (in diesem Fall im Selben Ordner in dem die Datei liegt, ansonsten Pfade Anpassen)
Und so verlinken
HTML:
<a href="download_wallpaper.php">Download meines Wallpapers</a>

Man könnte das noch ausbauen, und eine einzige PHP Datei für alle Downloads nutzen.
 
Super Danke, nur so müsste ich für jede Datei die ich zum downloaden anbieten ein extra php-script schreiben.

Wie müsste denn die Lösung für ein globales php Script aussehen?


mfg,Olli
 
*seufz*

PHP:
<?php
$sFile = $_GET['file'];

if(empty($sFile)) { echo "Keine Datei angegeben."; exit; }

//Sag dem Browser um welche Dateiart es sich handelt
//Ich bin mir gerade nicht sicher ob das benötigt wird wenn die Datei unverändert eingelesen wird ? Hab mich nie wirklich mit PHP & Bildern auseinandergesetzt :D
header('Content-type: image/jpeg');

//Zwingen wir ihm unseren Willen auf (den Download)
header('Content-Disposition: attachment; filename="'.$sFile.'"');

//Und wie heist die Datei auf dem Server?
readfile($sFile);
?>

HTML:
<a href="download_wallpaper.php?file=wallpaper.jpg">Download</a>

Soll ich die Happen noch vorkauen?
 
Hallo!

Z.b. so:
PHP:
<?php 
if(isset($_GET['file']) AND !empty($_GET['file'])) {
    switch($_GET['file']) {
        case 1: $filename = "foo";
        break;
        case 2: $filename = "bar";
        break;
        default: header("Location: http://www.domain.de");
    }
 
    header('Content-type: image/jpeg'); 
    header('Content-Disposition: attachment; filename="Wallpaper_'.$_GET['file']'.jpg"'); 
    readfile($filename.".jpg");
 } else {
    header("Location: http://www.domain.de");
}
?>
Die Links könnten dann so aussehen:
HTML:
<a href="download_wallpaper.php?file=1">Download eines Wallpapers</a>
 
<a href="download_wallpaper.php?file=2">Download eines anderen Wallpapers</a>
Gruss Dr Dau</DIV>
 
Vielen Dank! Sorry aber habe mich erst vor kurzem in die Grundlagen von php etwas eingelesen...

Super das ihr mir weitergeholfen habt!
 
Hallo,

HTML:
<a href="download_wallpaper.php?file=wallpaper.jpg">Download</a>
Alternativ auch:
HTML:
<a href="download_wallpaper.php?file=die_datei_mit_den_supergeheimen_passwoertern.php">Download</a>
;)

Bei einem Apache-Server braucht man nicht mal PHP. Man erstellt einfach ein Unterverzeichnis, in welchem man alle Bilder speichert, die man zum Download anbieten will. Zusätzlich legt man dann noch eine Datei namens .htaccess in diesem Verzeichnis an, die folgenden Inhalt hat:
Code:
<FilesMatch "\.jpe?g$">
Header set Content-Disposition attachment
</FilesMatch>

Grüße,
Matthias
 
Hallo nochmal, es ist doch noch ein kleines Problem aufgetreten:

Und zwar habe ich das ganze in folgenden code eingebaut:

HTML:
<form action="../downloads/download.php?file=wallpaper_1280_800.jpg"> 
   <tr align="center" valign="middle">
    <td width="17" height="150">&nbsp;</td>
    <td width="201" height="150" align="left"><p class="text3">Wallpaper 1280x800 
	<img src="../bilder/wallpaper_vorschau.jpg" width="120" height="75" vspace="10"></p>
	<a href="../downloads/download.php?file=wallpaper_1280_800.jpg">Download</a>
	</td>
    <td width="84" height="150"><p class="text3">.jpg</p></td>
    <td width="55" height="150" align="right"><p class="text3">235</p></td>
    <td width="26" height="150"><p class="text3">KB</p></td>
    <td width="129" height="150" > 
    <input type="submit" value="Download">
    </td>
    <td width="17" height="150">&nbsp;</td>
    </tr>
   </form>

Möchte den Download gerne über den Input-Button starten, dann kommt jedoch die Meldung "Keine Datei angegeben."

Über den testweise eingefügten Link geht es wunderbar!

Ist es irgendwie möglich den Input-Button zu verwenden?


mfg,Olli
 
Sorry für die voreilige Frage, habe das Problem mit "method=post" selbst gelöst.

Aber noch etwas, mit dem php code lassen sich so ja nur Bilddateien vom Typ .jpg downloaden. Wie kann ich das Script universell für .pdf/.doc/.gif ... verwenden?

mfg Olli
 
Indem man das phphandbuch aufschlägt auf seite 30340 und zwei
und da liest:

PHP:
header('Content-type: application/'.$sContentType);

Und diesen bitte auch korrekt übergebe. Wie man das
zu ermitteln hat, überlasse ich nun dir als Hausaufgabe und
widme mich wieder der hohen Kunst der **5%++6&&# PDF
Erstellung mittels FPDF
 
Zurück