HTML5-Canvas als Bild auf einem Server speichern
Bei Ihrem Bestreben, generative Kunst für Benutzer zu bewahren, sind Sie beim Speichern auf Herausforderungen gestoßen Bilder von einer Leinwand auf einen Server. Dieser Artikel geht auf Ihr spezifisches Problem ein und bietet eine Lösung.
Aufbauend auf der Grundlage früherer Tutorials haben Sie versucht, Canvas-Daten mithilfe des XMLHttpRequest-Objekts zu speichern. Während eine Bilddatei erstellt wurde, blieb diese sowohl leer als auch unlesbar.
Tiefergehende Einblicke in Inhaltstypen
Der Schlüssel zur Lösung dieses Rätsels liegt im Content-Type-Header Sie legen während der AJAX-Anfrage fest. Ursprünglich auf „application/upload“ eingestellt, erscheint dieser Header logisch, wird aber von Webservern nicht allgemein unterstützt.
Lösung: Embracing Application/x-www-form-urlencoded
Die Lösung besteht darin, den Content-Type-Header in „application/x-www-form-urlencoded“ zu ändern. Diese Änderung entspricht dem akzeptierten Standard für die Übermittlung von Formulardaten an einen Server und ermöglicht die erfolgreiche Übertragung Ihrer Canvas-Daten.
Codeänderung
Um diese Lösung zu implementieren, ändern Sie Ihre AJAX-Anfrage wie folgt:
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Verifizierte Ergebnisse
Nachher Durch die Einbeziehung dieser Änderung haben Sie bestätigt, dass Bilddateien jetzt mit einer Größe ungleich Null erstellt werden. Sie bleiben jedoch unlesbar und können nicht als gültige Bilder angezeigt werden.
Weitere Erkundung
Das lässt Sie mit einem Rätsel zurück, das noch gelöst werden muss. Während der Übertragung der Canvas-Daten kann es zu Abweichungen bei der Kodierung oder Formatierung der Bilddaten kommen. Weitere Untersuchungen sind erforderlich, um die genaue Art des Problems zu ermitteln und eine dauerhafte Lösung zu finden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit AJAX erfolgreich ein HTML5-Canvas-Bild auf einem Server speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!