Ich hatte bisher Grafiken die mit Medienelementen verknüpft waren im Verzeichnis Media liegen. Wenn ich diese nun in einer Webseite die im user Verzeichnis lag anzeigen wollte habe ich auf diese Dateien verlinkt.
Mit IP Symcon 4 werden ja jetzt die Bilder der Medien im Arbeiterspeicher gehalten, liegen also bis zum Beenden nicht auf der Festplatte/SD Karte.
Wie schaffe ich es denn jetzt von einer Webseite die im user Verzeichnis liegt eine Grafik die in einem Media Element enthalten ist anzuzeigen? Hat da jemand ein Beispiel für mich?
Das hatte ich schon ansatzweise probiert bisher aber ohne Erfolg.
$imageid = $_GET['imageid'];
$imageid = (int)$imageid;
if(!IPS_MediaExists($imageid))
die("ID #".$imageid.") does not exists");
$media=IPS_GetMedia($imageid);
if($media['MediaType'] != 1)
die("ID #".$imageid." is not an image");
$image = base64_decode(IPS_GetMediaContent($imageid));
echo $image;
Habe ich genommen und schicke da eine ObjektID hin. Die Seite gibt auch einen Text aus, findet also was, nur leider keine Grafik. Wahrscheinlich muss der Header noch richtig gesetzt werden nehme ich mal an. Nur wie bekomme ich raus anhand der base64 Daten um was es sich bei der Grafik genau handelt um den Header richtig zu setzten? Oder mache ich da sonst noch was falsch?
Stimmt da war was.
Gd2lib oder wie die von PHP da heißt kann dir den Typ ermitteln… Meine ich.
Dann den passenden Header senden und gut. Irgendwo hatte ich auch mal ein Beispiel, wenn ich es finde poste ich es heute abend.
Michael