Das <img src="">-Tag brauchst du in Deinem PHP nicht - es sei denn, Du willst mit dem PHP HTML "rendern". (=Content-Type: text/html)
Wenn du kein HTML rendern will, sondern einen binären Datenstrom (wie Bilder) anzapfen, dann musst du a.) den "Content-Type" als "image" deklarieren und (evtl.?) muss du auch dafür sorgen dass korrekt ausgegeben wird - wie man mit "echo" binäre Daten ausgeben kann, ist mir z. Zt. nicht bekannt. Geht vielleicht.
$imagePath = $_POST['image'];
$imageType = null;
if(imagePath.contains('.jpg') || imagePath.contains('.jpeg') || imagePath.contains('.jfif'))
{
$imageType = 'jpeg';
}
if(imagePath.contains('.gif'))
{
$imageType = 'gif';
}
if(imagePath.contains('.png'))
{
$imageType = 'png';
}
if(imageType!=null && imageType!='')
// String ist weder eine Nullinstanz noch leer. (leer heisst intern ein "array" mit der länge 0, also instanziert aber leer!)
{
header('Content-Type: image/'.$imageType);
// String zusammensetzen!!
$binaryImageData = getBinaryFileContent($imagePath);
echo $binaryImageData;
// Frage die sich hier stellt: Kann man binäre Daten mit "echo" ausgeben...?
}
else
{
// Trifft zu wenn kein Bild, oder nicht unterstützt...
// die("Fehlermeldung"); oder exit; sollte nicht notwendig sein, sollte ich selbst "bereinigen" ohne dass du was aufrufen muss. Schaden tut es allerdings nicht
Wenn du unbedingt eine Fehlermeldung willst -> die(string); verwenden...
}
Wichtig: getBinaryFileContent(arg) existiert so nicht in dieser Form, ist nur zum Demo-Zwecken!!
Natürlich könntest du es auch dynamischer machen, indem immer die hintersten 3 Zeichen des Dateinamens AUTOMATISCH zum "Content-Type: "-String zusammengesetzt werden, ohne vorherige Prüfung.
Hat alles seine Vor- und Nachteile, du musst diese gegeneinander abwägen - je nach "Use Case"...
Nachtrag: Evtl. kannst du auch switch/case verwenden anstelle der vielen if's, keine Ahnung wie das bei PHP ist, evtl. geht das mit strings. Bei Java konnte man früher zumindest nur integer-Werte verwenden.