<?php
/**
* Ein einfaches Upload-Formular um ein Grafik per
* base64 zu kodieren und direkt im Code abzulegen.
*/
// maximale Dateigröße die verarbeitet wird
$maxsize = 200000;
// Breite zur Formatierung der bas64-Daten (nur zur besseren Darstellung)
$maxwidth = 80;
if (!empty($_FILES)){
if ($_FILES['theimage']['size'] > $maxsize){
die ('maximale Grösse überschritten');
}
$tmp = file_get_contents( $_FILES['theimage']["tmp_name"])
OR die ('Kann Datei nicht öffnen');
$size = getimagesize($_FILES['theimage']["tmp_name"])
OR die ('Nur Bilddateien möglich');
$data = wordwrap(base64_encode($tmp), $maxwidth, "\n", 1);
echo <<< IMGDATA
<pre>
<?php
// Ein Bild direkt im Quelltext speichern und ausgeben
// Name : {$_FILES['theimage']['name']}
// Breite : {$size[0]}
// Höhe : {$size[1]}
// Bytes : {$_FILES['theimage']['size']}
// Bilddaten base64 kodiert
$TheImage = <<< EOT
$data
EOT;
header('Content-type: {$size['mime']}');
header('Content-Disposition: inline; filename={$_FILES['theimage']['name']}');
echo base64_decode($TheImage);
?>
</pre>
IMGDATA;
} else {
echo <<< EOT
<form action="{$_SERVER['PHP_SELF']}" method="post" enctype="multipart/form-data">
<input type="file" name="theimage"><input type="submit" value="Bild hochladen">
</form>
EOT;
}
?>
Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.