OVH Cloud OVH Cloud

pb de nom de telechargement

1 réponse
Avatar
general bol
Bonjour

J'ai un pb bizarre, vous avez dit bizarre...

Je lance un cript pour telecharger un fichier, mais le nom est rajouté d'un
[1] dans celui-ci.
exemple : fichier : toto.winrar.rar
le systeme telecharge toto[1].winrar.rar
????

le cript est lancé par une petite image avec le nom du fichier en parametre
(je l'ai verifié il n'est pas modifié)
comment ce fait-ce ?????
merci de votre aide
_________________________________________________________
?>
header('Pragma: public');
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Length: '.filesize($file));
header("Content-Transfer-Encoding: binary\n");
header("Content-Disposition: attachment; filename=$file");
set_time_limit(120);
readfile($file);

?>
______________________________________________________

1 réponse

Avatar
Olivier Miakinen

Je lance un cript pour telecharger un fichier, mais le nom est rajouté d'un
[1] dans celui-ci.
exemple : fichier : toto.winrar.rar
le systeme telecharge toto[1].winrar.rar
????


Tu as une URL où on peut tester ?

le script est lancé par une petite image avec le nom du fichier en parametre
(je l'ai verifié il n'est pas modifié)


Le script est lancé par une image ?!? Tu pourrais expliquer un peu mieux
, ou bien nous donner le script en entier ? Parce que là par exemple on
ne sait pas comment est déterminée la valeur de $file, or ça me semble
le plus important.

?>


Je suppose que c'était <?php mais il doit en manquer un bout.

header('Pragma: public');
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');


Beurk ! Il n'existe aucun type « application/force-download », et même
si c'est la solution la plus simple pour contourner un bug d'Internet
Explorer il vaudrait mieux ne pas le faire. C'est vrai qu'il ne semble
pas exister de type MIME enregistré à l'IANA pour WinRARA, dans ce cas
il vaut mieux mettre application/octet-stream.

header('Content-Length: '.filesize($file));
header("Content-Transfer-Encoding: binaryn");
header("Content-Disposition: attachment; filename=$file");


D'où vient le $file ? Que vaut-il ? Au passage, comme c'est interprété
par le navigateur, il serait utile de savoir avec quel(s) navigateur(s)
tu as testé.

set_time_limit(120);
readfile($file);


C'est le même $file, il semblerait donc que le nom soit correct. Mais
est-ce que le bug ne viendrait pas justement du « force-download » qui
induirait un nouveau comportement bizarre dans IE ?