Télécharger plusieurs images dans 1 fichier zip
J'ai une fonction qui actuellement téléchargements multiples images et les enregistre dans les utilisateurs "télécharger" le dossier (ne fonctionne que sur Chrome)
Je veux profiter de cette fonction pour l'étape suivante et de mettre ces images dans un seul fichier zip.
Ci-dessous est un exemple de mon code actuel. Je veux fusionner mon code avec le JSZip API j'ai trouvé en ligne ici.
J'ai fait la charmille installer pour ce JSZip API et déjà inclus le script dans mon code html.
Voici mon code qui fonctionne parfaitement de télécharger plusieurs images à la fois:
$scope.downloadPhotos = function() {
var photoUrls = [];
for (var x = 0; x < $scope.$parent.photos.length; x++) {
var p = $scope.$parent.photos[x];
if (p.isChecked) {
photoUrls.push($scope.bucketUrl() + p.photoUrl);
}
}
saveImage(photoUrls);
};
/*----this function saveImage works great (only Chrome)-----*/
function saveImage(urls) {
var link = document.createElement('a');
link.setAttribute('download', null);
link.style.display = 'none';
document.body.appendChild(link);
for (var i = 0; i < urls.length; i++) {
link.setAttribute('href', urls[i]);
link.click();
}
document.body.removeChild(link);
}
Et voici le JSZip API exemple de code pour créer un fichier zip avec le contenu:
function create_zip() {
var zip = new JSZip();
zip.add("hello1.txt", "Hello First World\n");
zip.add("hello2.txt", "Hello Second World\n");
content = zip.generate();
location.href = "data:application/zip;base64," + content;
}
Maintenant, je me demande juste comment combiner les deux pour mettre mes images dans un zipfile.
Merci pour votre aide!
OriginalL'auteur Jason Brewer | 2015-08-03
Vous devez vous connecter pour publier un commentaire.
Pour Télécharger plusieurs fichiers au format Zip, nous pouvons utiliser jsZip et FileSaver.js ou si nous sommes à l'aide de l'API Web et Angularjs alors nous pouvons créer une méthode de l'API pour créer des zip obtenir le fichier au serveur, puis dans angularjs on peut utiliser $http post ou get appel api pour télécharger le fichier en tant que fichier zip (Nous devons utiliser filesaver pour enregistrer le fichier au format zip). par exemple -
les appels de l'api dans angularjs -
appel de fonction ci-dessus et sur la réponse de l'utilisation fileSaver.js la méthode enregistrer sous pour enregistrer le fichier au format zip par exemple -
OriginalL'auteur Ravindra Vairagi
Vous devriez voir cet exemple. Actuellement, vous demandez simplement le navigateur pour déclencher le téléchargement d'un fichier. Si vous souhaitez créer un fichier zip côté client, votre code js a besoin d'accéder au contenu des fichiers avec des appels ajax (vous obtiendrez de la SCRO questions si elles ne sont pas stockées sur le même serveur).
Sans copier/coller tout le code, exemple:
responseType = "arraybuffer"
si tu prend uniquement en charge les navigateurs récents)OriginalL'auteur David Duponchel
a fait un bon travail!
OriginalL'auteur Vic Key
J'ai mis cet ensemble qui vous permettra de zip un tableau de l'url de l'image.
https://jsfiddle.net/jaitsujin/zrdgsjht/
Vous pouvez gérer le dossier zip structure en modifiant cette ligne
OriginalL'auteur Jaitsujin