header Content-Length non pris en comtpe

header Content-Length non pris en comtpe - PHP - Programmation

Marsh Posté le 15-11-2007 à 17:43:24    

Hello

 

J'envoie cette liste de header au téléchargement d'un fichier :

Code :
  1. header("Content-disposition: attachment; filename=".$nom_nouveau_fichier);
  2. header("Content-Type: application/force-download" );
  3. header("Content-Transfer-Encoding: binary" );
  4. header("Content-Length: ".filesize($chemin_fichier_source));
  5. header("Pragma: no-cache" );
  6. header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" );
  7. header("Expires: 0" );
 

Seulement voilà, le téléchargement se fait bien, mais avec "taille de fichier inconnue", et en regardant les headers de response qui arrivent au client, il me semble que ce header Content-Length est bien absent :

 
Citation :

HTTP/1.1 200 OK
Date: Thu, 15 Nov 2007 16:33:25 GMT
Server: Apache
X-Powered-By: PHP/5.2.3
Content-disposition: attachment; filename=TH1_TINAE003_track01.mp3
Content-Transfer-Encoding: binary
Pragma: no-cache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: 0
Vary: Accept-Encoding
Content-Encoding: gzip
Transfer-Encoding: chunked
Content-Type: application/force-download

 

Il est où le problème ? :/

 

Merci les amis


Message édité par theredled le 15-11-2007 à 17:46:21

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 15-11-2007 à 17:43:24   

Reply

Marsh Posté le 15-11-2007 à 18:00:06    

Fous des \r\n a chaque fin d'header, ca peut aider


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 15-11-2007 à 18:06:28    

comment fait tu pour récupérer le header ? telnet ?


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 15-11-2007 à 18:20:11    

WiiDS a écrit :

Fous des \r\n a chaque fin d'header, ca peut aider


Je peux mais bon ça marche avec les autres :/

PierreC a écrit :

comment fait tu pour récupérer le header ? telnet ?


www.xk72.com/charles/ [:bien]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-12-2007 à 15:33:29    

Up, ça marche pas plus avec \r\n
 
Ya pas un problème d'ordre dans l'envoi des headers ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 05-12-2007 à 15:30:02    

Je me permet de reup :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-12-2007 à 11:48:08    

j'ai un doute sur le soft qui récupère les entetes (je doute souvent). C'est possible d'avoir accès à l'url ?


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 02-01-2008 à 18:01:21    

Hello up

 

Non je ne peux pas te donner l'accès à l'url, mais je peux te donner les infos que tu veux.

 

Pour info, tous les téléchargement qui indiquent une taille on bien un header "Content-Length" dans Charles Proxy.


Message édité par theredled le 02-01-2008 à 18:01:34

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-01-2008 à 12:07:39    

Ce ne serait pas parce que tu utilises "Transfer-Encoding: chunked" qui est justement utilisé pour transmettre le flux sans connaitre sa taille ?

Reply

Marsh Posté le 03-01-2008 à 13:41:29    

Peut-être, mais je lui ai demandé du "binary" moi, pas du chunked :/

 

et c'est quoi ce "Content-Encoding: gzip" :??:


Message édité par theredled le 03-01-2008 à 13:48:39

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-01-2008 à 13:41:29   

Reply

Marsh Posté le 03-01-2008 à 14:40:34    

Ton serveur web, il serait pas réglé pour faire de la compression à la volé? (d'où le "Content-Encoding: gzip" et par conséquent le "chunked" )

Reply

Marsh Posté le 03-01-2008 à 14:43:11    

omega2 a écrit :

Ton serveur web, il serait pas réglé pour faire de la compression à la volé? (d'où le "Content-Encoding: gzip" et par conséquent le "chunked" )


Possible, du moins, moi j'ai rien demandé [:pingouino] Je suis sous apache, ce serait dans quel coin ?


Message édité par theredled le 03-01-2008 à 14:43:48

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 03-01-2008 à 15:07:49    

là, faut demander à google, j'ai jamais joué avec.

Reply

Marsh Posté le 03-01-2008 à 17:50:58    

Ben j'ai bien l'impression qu'il est désactivé, en tout cas dans httpd.conf :/


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 11-01-2008 à 02:34:21    

même PB. j'ai trouvé :  
 
c'est parce que ça s'appelle deflate.  
 
on trouve dans httpd.conf :  
 
<IfModule mod_deflate.c>
  <Location />
    # Insert filter
    SetOutputFilter DEFLATE
.....
    SetEnvIfNoCase Request_URI \
      \.(?:gif|jpe?g|png|avi|mpg|swf)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary
  </Location>
</IfModule>
 
 
dans mon cas, j'ai mis dans mon VirtualHost
 
SetEnvIfNoCase Request_URI MonFichier.php no-gzip dont-vary
 
MonFichier contient des headers dont content-length et un readfile($machin);
(c'est du AlloPass)
(c'est cool http://www.xk72.com/charles/ , moi j'étais sur http://web-sniffer.net/)
 
GUYK

Reply

Marsh Posté le 11-01-2008 à 10:16:12    

Merci du témoignage :jap:
Mais ya pas de ça chez moi :/


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 09-02-2008 à 12:21:07    

Si cela peut rendre service voici mes headers, ils fonctionnent sur ie, ff, opera, k-meleon .Exemple avec mon fichier ntgf.pdf :
 
header('Content-Type: application/pdf');  
header('Content-Length: 3483226');
header( 'Content-Disposition: attachment;filename="ntgf.pdf"' ); etc.
 
Pour Content-Length je ne renseigne pas de nom ni de chemin entre ( ), autrement ff donne une taille inconnue, donc pas de ( ) du tout. En téléchargement forcé le nbre d'octets est celui de la taille normal du fichier, jamais la taille sur disque, autrement il y a diverses erreurs. Dans le cas d'un téléchargement zip le nbre d'octets est celui de la taille réduite, autrement opera génère une erreur.  
 
J'espère de bonnes nouvelles...


Message édité par PhilippeMoga le 09-02-2008 à 13:27:32
Reply

Marsh Posté le 09-02-2008 à 12:55:38    

Oui il y a eu bonne nouvelle depuis :D
 
C'était bien à cause de gzip/deflate etc... mais c'est mon hébergeur qui s'en est occupé, je ne sais plus comment (et je ne sais pas si j'ai su).
 
Merci quand même :jap:


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed