Speichern einer Uint8Array in eine binäre Datei

Arbeite ich an einer web-app, öffnet Binär-Dateien, und Sie können bearbeitet werden.

Dieser Prozess ist im Grunde ondrop -> dataTransfer.files[0] -> FileReader -> Uint8Array

Im wesentlichen, ich möchte in der Lage sein, um speichern Sie die geänderte Datei wieder als eine binäre Datei. Ideal als Datei-download mit einem bestimmten Dateinamen.

Dort scheint nicht zu jedem standard-Methode, dies zu tun, und das nervt, weil alles bis zu diesem Punkt unterstützt.

Ich bin derzeit auf der Umwandlung des Arrays in eine Zeichenfolge mit String.fromCharCode(), base64-Codierung, und die Verwendung einer Daten-uri in einen hyperlink wie data:application/octet-stream;base64,.. zusammen mit den download - Attribut angeben, mit dem Namen.

Scheint es zu funktionieren, aber es ist ziemlich hacky und ich denke, dass die Konvertierung der raw-bytes zu einem string könnte einführen, Probleme der Zeichenkodierung, je nach byte-Werte. Ich will nicht die Daten beschädigt werden oder brechen der saite.

Abgesehen, dass, gibt es eine bessere/richtige Methode für immer ein Byte-array als Binär-Datei für den Benutzer?

InformationsquelleAutor bryc | 2014-08-17
Schreibe einen Kommentar