so senden Sie ein png-Bild vom server auf die Anzeige im browser via ajax

Ich habe eine harte Zeit mit was muss ein unglaublich normale Aufgabe. Ich hochladen und speichern von Bildern auf meinem web-server, und speichern Sie den Pfad zu der Datei in der MySQL-Datenbank (diese ist alle Arbeit). Die Sache, die nicht funktioniert, ist das abrufen eines image-Datei vom server an und zeigt es auf der Seite über ajax.

Ursprünglich war ich versucht, einfach den Pfad abrufen, aus der Datenbank, und aktualisiert einen tag src - Attribut mit dem Pfad zum Bild. Das war die Arbeit, aber auf diese Weise alle Bilder in einem Ordner auf dem server, wo alle Menschen Zugang zu Ihnen haben. Das ist nicht gut. Ich kann nur die Bilder, die gehören zu bestimmten Nutzern zugänglich zu machen, indem Sie diese Benutzer.

Damit beschränken Sie den Zugriff auf diese Fotos, die ich Hinzugefügt ein Apache-Direktive auf, die Ordner, die Sie erfolgreich der Zugang eingeschränkt ist. Das problem wurde dann, dass ich nicht die Anzeige der Bilder im browser durch die Einstellung der src Attribut, das auf diesen Pfad. Siehe mein Beitrag: https://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site

Schließlich habe ich gelernt, dass ich mit PHP auf das Bild Lesen die Daten direkt vom server und senden diese Daten an den browser. Ich habe das file_get_contents() - Funktion, die arbeitet, um konvertieren Sie die image-Datei (PNG) auf den server in einen string. Ich lege diese Schnur um den browser in einer ajax-call. Die Sache, die ich nicht bekommen kann ist: wie konvertiert diese Zeichenfolge wieder in ein Bild mit Hilfe von JavaScript?

Finden 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 ein update der src-Attribut eines img-Tags mit javascript? Sie können teh src Punkt an ein php-Skript akzeptiert integer-Werte, die anzeigen, Bilder und PHP-Skript server-side-echo den Inhalt der Datei zurück.
  • Sie konnte die src des Bildes werden die php-Datei: <img src="/get_image.php"/> Dann PHP verwenden, um die Ausgabe der Bild-direkt
  • In .Net, wir machen einen request-handler, die ein parameter-und return den Inhalt als wenn es eine normale Anfrage. Ich bin nicht vertraut genug mit PHP aus um zu wissen, ob es etwas ähnlich, aber ich bin mir sicher, dass etwas getan werden könnte. Das grundlegende Konzept ist, dass Sie die url des Bildes/background-image CSS sowas wie: http://myserver.com/getfile.php?q=myimage.jpg Dem server dann die Datei öffnet, bekommt Sie den Inhalt, und sendet es als normal httpresponse.
  • Vielen Dank an alle für die Hilfe!!!
Schreibe einen Kommentar