Récupération de fichiers impossible

Résolu
Signaler
Messages postés
17
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
11 février 2011
-
Messages postés
17
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
11 février 2011
-
Bonjour,

Voici mon problème, je tente désépérément de permettre la récupération de ichiers déposés sur le serveur, mais les header déjà inclus fonctionnant sur d'autres pages avec succès, refuse ici de fonctionner.

$id $_POST['id']; $name $_POST['name'];
$type = "";
switch(strrchr(basename($name), ".")) {
  // fonction permettant de definir le content-type
}
$db_name = requete de recuperation du filename;
$source = $db_name[0];

header('Content-Type:' . $type);
header('Content-Length:'.filesize($name));
header('Content-Disposition: attachment; filename=' .$name);

readfile($source); 


Malgré tout ca, je n'ai pas la popup qui s'ouvre et me propose de télécharger le fichier!

Est ce que quelqu'un peut m'aider s'il vous plait.

8 réponses

Messages postés
17
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
11 février 2011

Bon, le problème ne venait pas du tout des header ou autres. La raison pour laquelle ca ne fonctionnait pas était que dans la page principale, j'utilise du AJAX pour quasiment tous les traitements donc voici comment j'ai remédié au problème:

Intro:
- page visible en permanence -> gesliv.php
- page de traitement -> traitementliv.php
- page de telechargement dont vous connaissez deja le contenu -> download.php

Solution:
j'ai envoyé en AJAX les informations concernant le fichier a telecharger sur "traitementliv.php" qui les a renvoyé tel quel a "gesliv.php" qui a finalement envoyé les informations a "download.php" en methode GET. De cette manière, l'utilisateur ne voit toujours que la page "gesliv.php" et la popup de telechargement s'affiche.

Voila, bon courage a ceux qui ont rencontré ce problème
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
8
J'ai fait un script similaire il y a quelques temps, je viens d'y jetter un coup d'oeil...

essai une fois d'ajouter la ligne suivante:
header("Content-Description: File Transfer");

J'espère que c'est ça ;)

Bonne journée!
- Pysco68
Messages postés
17
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
11 février 2011

Et bien ... non, ca ne fait absolument rien, désolée. Je ne sais pas du tout pourquoi. C'est a n'y rien comprendre
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
8
a-tu déjà essayé avec une autre navigateur? (qui sais...)

sinon quelles sont les conditions de bord? développe tu en local? sur un serveur?

Essai peut-être de trouver un script fini sur le net et teste le.

- Pysco68
Messages postés
17
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
11 février 2011

J'ai essayé avec Opéra, et je suis avec Firefox. Inutile d'essayer avec IE c'est une vraie m...
Je développe le site depuis maintenant, 7 mois pour le moment, je suis en localhost, et ne devrais plus tarder a passer sur un vrai serveur.
J'ai tenté de forcer le telechargement, j'ai tenté aussi plusieurs scripts qui ne fonctionnent pas.
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
8
ben tente une fois de faire un mini script(sans la requête et tout) qui force juste le téléchargement d'un fichier et teste le en-ligne. Desfois il y a des trucs comme ça. Sinon quel type de fichier essai tu de faire télécharger?


- Pysco68
Messages postés
17
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
11 février 2011

Il faut que ca passe de tout, ce sont les clients qui vont déposer leurs traces de tests, et mon superieur a repertorié tous les types de fichiers possibles et inimaginables. Mais meme avec ca, ca ne veut pas.
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

un exemple permettant de recuperer un fichier zip sur un serveur
testé en local, configuration windows XP, apache 2.2.11, php 5.2.8
testé en prod (serveur mutualisé chez magiconline)
<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Type: application/force-download");
header('Pragma: no-cache');
header ("Content-type: application/zip");
header ("Content-Disposition: attachment; filename="".$fileName.""" );
header("Content-Length: ".filesize($fileName));
readfile($fileName);
?>



en espérant que cette exemple peut amener a résoudre ton problème

bonne soirée