Jetzt erhalte ich das Dateiobjekt in dieser Zeile:
file = document.querySelector('#files > input[type="file"]').files[0]
Ich muss diese Datei über json in Base 64 senden. Was kann ich tun, um sie in einen Base64-String zu konvertieren?
javascript
base64
Vassily
quelle
quelle
await
eine Funktion haben, die ein abgelehntes Versprechen zurückgibt, wird vom Aufruf kein Fehler zurückgegeben. es wird geworfen und du musst es fangen.Probieren Sie die Lösung mit der
FileReader
Klasse aus :Beachten Sie, dass dies
.files[0]
einFile
Typ ist, der eine Unterklasse von istBlob
. Somit kann es mit verwendet werdenFileReader
.Siehe die vollständige Arbeits Beispiel .
quelle
return reader.result
diegetBase64()
Funktion zu verwenden (anstatt sie zu verwendenconsole.log(reader.result)
), weil ich die base64 als Variable erfassen möchte (und sie dann an Google Apps Script senden möchte). Ich habe die Funktion mit: aufgerufenvar my_file_as_base64 = getBase64(file)
und dann versucht, auf Konsole zu druckenconsole.log(my_file_as_base64 )
und habe gerade bekommenundefined
. Wie kann ich die base64 einer Variablen richtig zuweisen?Wenn Sie nach einer vielversprechenden Lösung suchen, ist dies der Code von @ Dmitri, der dafür angepasst ist:
quelle
Aufbauend auf den Antworten von Dmitri Pavlutin und joshua.paling ist hier eine erweiterte Version, die den base64-Inhalt extrahiert (die Metadaten am Anfang entfernt) und außerdem sicherstellt, dass das Auffüllen korrekt erfolgt .
quelle
resolve(reader.result.replace(/^.*,/, ''));
. Da das Koma,
außerhalb des Base64-Alphabets liegt, können wir alles entfernen, was bis einschließlich des Komas auftritt. stackoverflow.com/a/13195218/1935128data:
ohne Komma gibt, also werde ich den ersten Teil so lassen, wie er ist. Ich habe die Antwort entsprechend aktualisiert.Die JavaScript- Funktion btoa () kann verwendet werden, um Daten in eine Base64-codierte Zeichenfolge zu konvertieren
quelle
Hier sind einige Funktionen, die ich geschrieben habe, um eine Datei in einem JSON-Format zu erhalten, die leicht weitergegeben werden kann:
quelle
quelle