Vous n'êtes pas identifié(e).
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 :
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
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
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
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
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