Récupération de fichiers impossible

Résolu
beth2611 Messages postés 17 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 11 février 2011 - 15 janv. 2010 à 10:54
beth2611 Messages postés 17 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 11 février 2011 - 29 janv. 2010 à 12:44
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

beth2611 Messages postés 17 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 11 février 2011
29 janv. 2010 à 12:44
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
3
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 janv. 2010 à 11:01
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
0
beth2611 Messages postés 17 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 11 février 2011
15 janv. 2010 à 12:06
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
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 janv. 2010 à 12:58
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
beth2611 Messages postés 17 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 11 février 2011
15 janv. 2010 à 13:27
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.
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 janv. 2010 à 13:32
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
0
beth2611 Messages postés 17 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 11 février 2011
15 janv. 2010 à 13:34
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.
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
15 janv. 2010 à 18:13
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
0
Rejoignez-nous