<input type="file" id="asd"/>
Ich möchte das Bild in base64 erhalten, sobald der Benutzer dies ausgewählt hat (bevor er das Formular abschickt).
Etwas wie :
$(input).on('change',function(){
var data = $(this).val().base64file(); // it is not a plugin is just an example
alert(data);
});
Ich habe über die Datei-API und andere Dinge gelesen und möchte eine einfache und browserübergreifende Lösung (IE6 / IE7 offensichtlich ausgeschlossen).
Jede Hilfe dankbar.
base64file()
- Ist das ein Plugin?Antworten:
( PS: Ein Base64-codiertes Bild (String) 4/3 der Größe der Originalbilddaten)
Überprüfen Sie diese Antwort auf das Hochladen mehrerer Bilder .
Browserunterstützung: http://caniuse.com/#search=file%20api
Weitere Informationen hier: https://developer.mozilla.org/en-US/docs/Web/API/FileReader
quelle
Genau das, was Sie brauchen :) Sie können zwischen Callback-Version und Promise-Version wählen. Beachten Sie, dass Versprechen im IE nur mit Promise polyfill lib funktionieren. Sie können diesen Code einmal auf einer Seite einfügen, und diese Funktion wird in allen Ihren Dateien angezeigt.
Rückrufversion
Versprich Version
html
quelle
In diesem Fall ist es nützlich, mit dem verzögerten Objekt zu arbeiten und das Versprechen zurückzugeben:
Und die obige Funktion könnte folgendermaßen verwendet werden:
Oder in Ihrem Fall:
quelle
quelle
file
wird in der letzten Zeile verwendetreader.readAsDataURL(file);