Comment créer un fichier ZIP à l'aide de PHP et de le supprimer après que l'utilisateur télécharge?
J'ai besoin de télécharger des images à partir d'autres sites web sur mon serveur. Créer un fichier ZIP avec les images. lancer automatiquement le téléchargement du fichier ZIP. une fois le téléchargement terminé, le fichier ZIP et les images doivent être supprimés à partir de mon serveur.
Au lieu de télécharger automatiquement un lien de téléchargement est aussi très bien. mais la logique reste la même.
Quels sont vos essayé jusqu'à présent? Un Débordement de pile n'est pas ici de donner le code source pour vous. Vous avez besoin d'essayer de résoudre ce problème vous-même. Si vous rencontrez un problème spécifique ou de la question, puis après une question ciblée après la première vérification pour voir si un autre utilisateur n'a pas déjà posé la même question.
OriginalL'auteur Joby Joseph | 2011-04-09
Vous devez vous connecter pour publier un commentaire.
Bien, vous devrez d'abord créer l'zipfile, à l'aide de la
ZipArchive
classe.Puis, envoyer :
header()
-- il y a un exemple sur ce manuel est la page qui devrait l'aider àreadfile()
Et, enfin, supprimez le fichier zip à partir de votre serveur, à l'aide
unlink()
.Remarque : par mesure de sécurité, il peut être judicieux d'avoir un script PHP exécuté automatiquement (par crontab, généralement), qui aurait pour effet de supprimer les vieux fichiers zip dans votre répertoire temporaire.
Cela juste au cas normal de votre script PHP est, parfois, interrompu, et ne pas supprimer le fichier temporaire.
Je suppose qu'il va se planter lorsque l'utilisateur en pause le téléchargement, mais en plus c'est la meilleure solution je pense
OriginalL'auteur Pascal MARTIN
Ce n'est pas vraiment possible de supprimer le fichier zip à partir de l'intérieur de ce code que vous ne savez pas quand le téléchargement sera terminé. Vraiment, vous devez supprimer le fichier via une tâche cron.
Ne pouvez-vous pas lire le fichier zip dans une chaîne de caractères, puis supprimer le fichier? Uniquement pour les fichiers relativement petits, bien sûr, mais encore, il semble comme un décent approche.
OriginalL'auteur Mahesh Ambig
Aucune idée de combien de fichier zip téléchargements interrompus et doivent être poursuivis?
Si les téléchargements sont un petit pourcentage de vos téléchargements, vous pouvez supprimer le fichier zip immédiatement; aussi longtemps que votre serveur est encore d'envoyer le fichier au client, il vous restera sur le disque.
Une fois que le serveur ferme le descripteur de fichier, le fichier de référence du compteur tombe à zéro, et enfin ses blocs sur le disque seront libérés.
Mais, vous pourriez passé une bonne quantité de temps de re-créer des fichiers zip si de nombreux téléchargements interrompus. Nice bon marché, l'optimisation des si vous pouvez sortir avec elle.
OriginalL'auteur sarnold
Voici comment j'ai été capable de le faire dans le passé. Ce code suppose que vous avez écrit les fichiers vers un emplacement spécifié par l'
$path
variable. Vous pourriez avoir à faire face à certains problèmes d'autorisations sur la configuration de votre serveur à l'aide de phpexec
OriginalL'auteur Eric Conner
Permettre à votre php_curl de vulgarisation; (php.ini),Puis utilisez le code ci-dessous pour créer le zip.
créer un dossier de classe et d'utiliser le code donné ci-dessous:
créer un dossier de classe et d'utiliser le code donné ci-dessous:
OriginalL'auteur Vineesh Kalarickal
Autre solution: Supprimer passé fichiers avant la création de nouveau fichier zip:
OriginalL'auteur Intacto
Je suis là à la recherche d'une solution similaire, et après avoir lu les commentaires trouvés ce chiffre d'affaires : avant de créer votre fichier zip dans un dossier dédié (ici appelé "zip_files" supprimer tous les colliers de vous donner une estimation de plus de un temps raisonnable (j'ai pris 24h) :
En procédant ainsi, après 24h vous n'avez le dernier zip créé, utilisateur par utilisateur. Rien ne vous empêche de faire un nettoyage par tâche cron parfois, mais le problème avec la tâche cron est que si quelqu'un est à l'aide de l'archive zip lorsque la tâche est exécutée, elle conduira à une erreur. Ici, l'erreur n'est possible que si quelqu'un attend 24h pour DL l'archive.
OriginalL'auteur Romain Bel
Tout d'abord, vous téléchargez des images à partir de site web
puis, avec les fichiers que vous avez téléchargé, vous creatae zipfile (grande tute)
enfin vous envoyé ce fichier zip de navigateur à l'aide de readfile et les en-têtes (voir Exemple 1)
OriginalL'auteur Elijan Sejic