Aller au contenu

Php : Démarrer Automatiquement Un Téléchargement


Messages recommandés

Posté(e)

Bonjour,

J'aimerais savoir comment faire démarrer automatiquement le téléchargement d'un fichier ".zip" si la variable est "oui".

J'ai essayé ça, mais ça ne marche pas :

if ($id=='oui') {header("Location: dossier.zip");}

Posté(e)
Bonjour,

J'aimerais savoir comment faire démarrer automatiquement le téléchargement d'un fichier ".zip" si la variable est "oui".

J'ai essayé ça, mais ça ne marche pas :

if ($id=='oui') {header("Location: dossier.zip");}

Ca a quel effet, rien ?

Posté(e)

Il se passe rien.

J'ai tout vérifié : tout est dans le même répertoire, donc pas d'erreur de lien.

Pourtant ça marche très bien pour l'affichage des images.

Posté(e)

Ok dans ce cas faut modifier le header du fichier surement :

header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=\"dossier.zip\"");
header("Location: dossier.zip");

PS : pense que l'attachement se fait par rapport au chemin relatif (ou absolu) par rapport au fichier de download, celui qui est appelé, pas inclus.

Posté(e)

Ca ne marche toujours pas :

if ($id=='oui') {header("Content-type: application/zip");

header("Content-Disposition: attachment; filename=\"dossier.zip\"");

header("Location: dossier.zip");}

:*)

Posté(e)

Il devrait au moins te renvoyer une erreur oO

Où est situé cette portion de code, dans la page de download dynamique ou bien ailleurs ? Précise le cheminement pour arriver jusque là.

Posté(e)

Il est placé à l'endroit habituel, après <body>

Il n'y a aucune erreur. Quand je regarde le code source, il n'y a rien entre

<body> et

</body><html>

Posté(e)

Ben forcément ... tu ne peux plus manipuler le header si tu as déjà renvoyé des données au client. Tu as donc dû désactiver l'affichage de certaines erreurs.

Au tout début de ton script tu peux rajouter

error_reporting(E_ALL);

Le mieux c'est de lire la doc : header()

Posté(e)

En html je place ceci dans <body> pour faire démarrer un téléchargement automatiquement :

<body onLoad="location.replace('dossier.zip');">

Ca marche très bien.

Donc normalement en php :

if ($id=='oui')

{echo "<body onload='location.replace(\"dossier.zip\")";}

ou :

if ($id=='oui')

{echo "<body onload='window.open(\"dossier.zip\",\"download\",\" \")";}

Que je met ce code avant, après ou dans <body>, ça affiche : <body onload='window.open("dossier.zip","download"," ")

mais ne télécharge pas.

Où est l'erreur ?

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.

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.

Chargement
×
×
  • Créer...

Information importante

By using this site, you agree to our Conditions d’utilisation.