Mehrere Teile einer Datei in Cordova zusammenführen

9

In meiner Cordova App lade ich beliebige Dateien wie Bilder oder Videodateien herunter. Dies geschieht mit dem Cordova File-Transfer Plugin und dem "Range" Header, da ich die Dateien in Teilen herunterladen muss.

Mein Problem ist, dass ich die mehreren kleinen "Byte" -Dateien wieder in die ursprüngliche Datei zusammenführen möchte, in der sie diese Datei verwendet haben. Jedes Mal, wenn ich versuche, die resultierenden Teile als binaryString über den FileReader zu lesen und sie zusammen in eine neue Datei zu schreiben, endet diese Datei viel größer als die Teile der ursprünglichen Datei altogther und die resultierende Datei ist unbrauchbar.

>

Jede Hilfe ist willkommen.

Hier ist mein Code bis jetzt (lang und hässlich):

%Vor%

Async-Code von Stackoverflow-Benutzer: Paul Facklam  - & gt; Vielen Dank!

    
plocks 15.10.2014, 15:29
quelle

2 Antworten

1

Das Verwenden von readAsArrayBuffer () anstelle von readAsBinaryString () hat den Trick gemacht!

Also statt:

%Vor%

Ich habe:

%Vor%

Und die resultierende Bilddatei ist verwendbar.

    
plocks 29.10.2014, 15:05
quelle
1

Sie können einen Blob aus anderen Blobs erstellen, wie denen, mit denen Sie FileReader jetzt verwenden. (File () s sind Blobs)

%Vor%

Hier wird der binaryString-Flavor verwendet, um zu zeigen, wie diese niederwertigen Strings stapeln, aber die tatsächliche neue Blob-Instanz sollte alle orig (beliebigen) Bytes von den ursprünglichen Blobs haben, auch wenn sie nicht aus einfachen Strings bestehen ...

    
dandavis 21.10.2014 23:22
quelle