La compression d'un blob en javascript

J'ai besoin d'envoyer une goutte pour le serveur avec l'ajax, mais il peut se trouver un peu grand, et je voudrais diminuer le temps de téléchargement. J'ai essayé jszip déjà, mais qui m'a donné un fichier vide à l'intérieur de la fermeture éclair. J'ai aussi essayé de btoa(), mais il s'avère que la valeur codée arrive que [objet Blob] à la place de la goutte de données. Quelles sont mes options pour la compression de gouttes?

Ici, c'est le code que j'ai utilisé pour jszip:

var zip = new JSZip();
zip.file("recording.wav", blobFile);
var content = zip.generate();

J'ai ensuite ajouté le "contenu" d'un objet FormData et envoyé au serveur. Sur le côté serveur, j'ai décodé le POST de données (à partir de base64). Le fichier zip ouvert, mais l'enregistrement.wav est un 0 longueur de fichier.

De plus, j'ai essayé d'utiliser le LZW mise en œuvre trouvé ici. C'était peut être le code que j'ai utilisé pour compresser:

var compressed;
var reader = new FileReader();
reader.onload = function(event){
   compressed = LZW.compress(event.target.result);
};
reader.readAsText(blobFile);

Cependant, la décompression, elle renvoie null.

  • Comment avez-vous essayez d'utiliser jszip? Je ne pense pas que btoa est ce que vous voulez utiliser, s'il y a un problème, qui produit des données Base64 et qui fait les choses en grand.
  • Question édité pour montrer comment jszip a été utilisé.
  • Qu'est-ce que blobFile?
  • C'est un objet Blob avec un type non défini.
  • Pouvez-vous tirer les octets de la Goutte comme une Chaîne de caractères, puis la main que pour jszip?
  • J'ai essayé, avec FileReader de readAsBinaryString() de la fonction, mais le zip a fini par être plus grand que le fichier résultant est sans zip. Aussi, l'enregistrement résultant.wav n'était pas valide d'un fichier audio.
  • Avez-vous essayé de zip un .wav fichier à la main pour voir si la compression est encore en vaut la peine? Beaucoup de formats de fichiers sont compressés en interne afin de les compresser n'est d'aucune utilité; c'est assez commun avec audio, vidéo, et autres "naturellement " grand" formats.
  • Vous avez raison, il ne semble pas à le rendre plus petit quand je l'ajouter manuellement à un zip, mais j'ai encore besoin d'un moyen de compression des données.

InformationsquelleAutor Fibericon | 2013-06-16