Ich habe eine harte Zeit mit was muss eine unglaublich normale Aufgabe sein. Ich lade Bilder hoch und speichere sie auf meinem Webserver und speichere den Pfad zur Datei in der MySQL-Datenbank (das funktioniert alles). Die Sache, die nicht funktioniert, ist, eine Bilddatei vom Server zu holen und sie auf der Seite über Ajax anzuzeigen.wie png Bild vom Server zur Anzeige im Browser über Ajax senden
Ursprünglich wollte ich nur den Pfad aus der Datenbank abrufen und das Attribut src
eines Tags mit dem Pfad zum Bild aktualisieren. Das funktionierte, aber auf diese Weise befinden sich alle Bilder in einem Ordner auf dem Server, auf den alle Zugriff haben. Das ist nicht gut. Ich kann nur die Bilder, die bestimmten Benutzern gehören, durch diese Benutzer zugänglich machen.
Um den Zugriff auf diese Fotos zu beschränken, habe ich eine Apache-Direktive für diesen Ordner hinzugefügt, die den Zugriff erfolgreich eingeschränkt hat. Das Problem war dann, dass ich die Bilder im Browser nicht anzeigen konnte, indem ich das src
Attribut auf diesen Pfad setzte. Siehe meinen Beitrag: https://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site
Endlich habe ich gelernt, dass ich PHP verwenden muss, um die Bilddaten direkt vom Server zu lesen und diese Daten an den Browser zu senden. Ich habe die file_get_contents() Funktion verwendet, die die Bilddatei (PNG) auf dem Server in eine Zeichenfolge konvertiert. Ich gebe diese Zeichenfolge in einem Ajax-Aufruf an den Browser zurück. Das Ding, das ich nicht bekommen kann, ist: wie man diese Zeichenkette zurück in ein Bild mit JavaScript umwandelt?
Sehen Sie diesen Code:
$.ajax({
url: get_image.php,
success: function(image_string){
//how to load this image string from file_get_contents to the browser??
}
});
Warum nicht einfach das src-Attribut eines img-Tags mit Javascript aktualisieren? Sie können den Quellcode auf ein PHP-Skript verweisen lassen, das ganzzahlige Werte akzeptiert, die auf Bilder abgebildet werden, und die PHP-Skript-Server-Seite den Dateiinhalt zurückgeben. – GordonM
Sie könnten die src des Bildes, die PHP-Datei machen: '' Dann PHP zur Ausgabe der Bild verwenden, um direkt –
In .Net, würden wir einen Request-Handler machen, die einen Parameter übernehmen würde und gibt den Inhalt als ob Es war eine normale Bitte. Ich bin mit PHP nicht genug vertraut, um zu wissen, ob etwas Ähnliches verfügbar ist, aber ich bin mir sicher, dass etwas getan werden könnte. Das Grundkonzept besteht darin, dass Sie die URL des CSS-Images für Bild/Hintergrund so festlegen: "http: //meinserver.com/getfile.php? Q = myimage.jpg" Der Server öffnet dann die Datei und ruft den Inhalt ab und sendet es als normale httpresponse. – Shmiddty