Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Téléchargement de fichier en php


simous

Messages recommandés

Bonjour à tous et à toutes,

 

J'ai besoin de vos lumières, je vais essayer d'être clair...

 

Prenons le cas d'une galerie de photos (c'est un exemple pour expliquer :P ), un visiteur se loggue, choisit plusieurs photos, un zip de ces photos est créé, le zip est envoyé automatiquement depuis le navigateur.

 

Je sais coder toutes les opérations ci-dessus, mais le déroulement ne me convient pas...

 

Voici les étapes que j'aimerais mettre en place :

 

- login + choix des photos : je sais faire...

- une fois le choix fait, je redirige vers une page, sur cette page je vérifie les infos de connexion et de choix, les variables sont passées via un formulaire et URL, je recup donc avec GET et POST : jusque là, tout va bien.

- Une fois les infos vérifiées, je créé un zip avec les photos, j'affiche une page avec un message du style "le téléchargement va commencer" : pareil, tout va bien.

 

- Une fois le zip fait, je redirige vers une autre page qui lance le téléchargement de ce zip...

- Une fois le zip téléchargé, j'aimerais soit le déplacé de dossier, soit le supprimer...

 

Voilà, ce sont les deux dernières étapes qui me posent problème....

 

En effet, je veux que ce zip final ne soit pas accessible par d'autres personnes et que l'url de ce zip soit cachée....

 

Pour cacher le nom réel du zip et son emplacement, j'utilise ceci :

 

	if (strstr($HTTP_USER_AGENT, "MSIE"))
   $attachment = "";
else
   $attachment = " attachment;";
header("Content-type: application/zip");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $taille . "");
header("Content-Disposition: attachment; filename=$nom_zip_final");
header("Content-Description: File Transfert");
header("Cache-Control: no-store, no-cache, must-revalidate");

readfile($url_zip_final);

 

Ce bout de script fonctionne très bien, mais à condition qu'aucun header ne soit envoyé avant, donc je ne peux pas afficher une page avec un message avant d'envoyer le fichier...

 

J'aimerais donc vos idées, avis concernant le passage de la page de vérif avec affichage d'un message et l'envoi de ce fichier (popup javascript, autre ?? )

 

Merci à vous :-(

Lien vers le commentaire
Partager sur d’autres sites

Justement, je ne code pas en fonction d'un navigateur, mais ce test permet de lancer correctement le téléchargement depuis IE...

Et oui IE ne réagissant pas comme les autres, il faut lui mettre une condition propre à lui pour que ça marche :P

 

J'ai bien sûr testé ce code sur bcp de navigateurs (IE, Moz, Opera, Firefox) et il fonctionne à merveille, là n'est pas le problème...

 

:-(

Modifié par simous
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...