PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 07-01-2010 18:05:38

cookie
Membre
Inscription : 07-12-2009
Messages : 7

forcer à télécharger un fichier (et non l'afficher) avec php

Bonjour,

J'aimerais trouver le moyen de forcer mes utilisateurs à télécharger un fichier (plutôt que de l'afficher).
J'ai trouvé ce script dans la doc php :

<?php
$file = 'a.jpg';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

Quand j'exécute le script, il me télécharge bien le fichier a.jpg mais il est vide.
Est-ce que quelqu'un aurait une idée de l'origine du problème ?

D'avance merci pour votre aide.

Hors ligne

#2 07-01-2010 19:58:01

cookie
Membre
Inscription : 07-12-2009
Messages : 7

Re : forcer à télécharger un fichier (et non l'afficher) avec php

J'a trouvé le problème.
Il faut indiquer l'adresse absolue. Même si le fichier se trouve au même endroit que le script.

Par contre, j'ai un autre problème.
Si c'est un dossier à télécharger, ça ne fonctionne pas.
Quelqu'un a une idée ?

Merci.

Hors ligne

#3 07-01-2010 20:56:38

Jiinn
Membre
Inscription : 06-01-2010
Messages : 22

Re : forcer à télécharger un fichier (et non l'afficher) avec php

Hello,

si j'avais ce probleme je verrais a ce que le serveur crée une archive du dossier puis l'envoie.

sinon je vois pas.

Jiinn

Hors ligne

#4 08-01-2010 10:36:02

cookie
Membre
Inscription : 07-12-2009
Messages : 7

Re : forcer à télécharger un fichier (et non l'afficher) avec php

Bonjour Jiin et merci pour la réponse.
C'est une idée. Créer un zip dynamiquement et le télécharger.
Le problème c'est que dans le cas du script que je voudrais faire, il y a beaucoup de fichiers sons dedans (studio d'enregistrement) et généralement, mes clients sont plutôt retissant à l'idée de "zipper" un .wav

Si quelqu'un a une idée ?

Hors ligne

#5 08-01-2010 10:44:15

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : forcer à télécharger un fichier (et non l'afficher) avec php

Si tu ne compresses pas ton dossier il est impossible de le télécharger.
A la limite tu peux faire un autre cas envoyant plusieurs header(pas sûr que ça fonctionne...) pour chaque fichier du dossier mais j'imagine pas le plantage de navigateur si le dossier contient 100fichiers...

Hors ligne

Pied de page des forums