IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

ForceDownload .docx fichier corrompu


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut ForceDownload .docx fichier corrompu
    Bonjour à tous,

    Je post ceci car j'ai un petit problème que je n'arrive pas à cerner quand à un téléchargement d'un fichier .docx en php.

    Pour des raisons de simplicité, j'ai recréé ma situation sous forme de test et voilà ce que ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    	 forceDownload("Devis_bis.docx", "./file/Devis.docx", 6000000);
    	  function forceDownload($name, $location, $size)
    	  {
    		header('Content-Type: application/octet-stream');
    		header('Content-Length: '. $size);
    		print($location). "\n";
    		header('Content-disposition: attachment; filename='.$name);
    		header('Pragma: no-cache');
    		header('Content-Transfer-Enconding: binary');
    		header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    		header('Expires: 0');
    		readfile($location);
    		exit();
    	  }
    }
    L'arborescence de mes fichiers est la suivante :

    Nom : lolo.png
Affichages : 354
Taille : 44,9 Ko

    Et lorsque le téléchargement se fait, non seulement la taille du fichier est de 1ko, soit vide, mais lorsque je l'ouvre sous notepad :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    PK     !  󪈁  ى   [Content_Types].xml „(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ĖOГ0ƯH|ȈWԸۇŐӽ,pĕ(Wמզ��ܾ{ljeޔt#.֒ڷ߯텶��񄱩૶SΘNzƝۦ?ןʏ͈(ܒƻəܛݽ3_ĂԮ֬Ø>rߤ͈Տ੒𨅒c\󠤣XߝΞs靂ÒӇ[̿A#ֆ̏{򻣹`͊󮱧֌ܬЖ𠦧܁ɾ̕aMӞʄFK”萎=ۦ<NRѲһj8Ӑ+烎ۯԅQ+(DįÒ࠹ȸ򲫉Yެ3i܆K鶙-D/!%ۛkʾbƶ'��M鮏kنЏчts5No۽ †~
    ϮƛڕDÿ��G!ŗ'齇けS އvѺ>ş棠η轎ћ޵(85ĉyaBAݾܼˠ3ߨ&ʯ̯ݿ��A��ٔ+S·!Ў~龯Zۗ"ɳ=ɨ*��ߕe٨ꔉ򪹠_ȁlߞ̖߁  ��PK     ! њد   N   _rels/.rels „(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ̒ªð@đޑہĎ/cћه[ILܘjؾ��]ꢇ̒ӓѺs݆u՝𚖕
    ʽ	׹^ě󼸠Յܥ1xװ⌛緦��)ʃ̙ˏҸȘ΀嫄��i")Дc$ӣ߱Uطپ31֖jH[{ʽEކێ~
    f?ї3-ЏÞӝŔꓸ2Ϊ)��0/%ܑb̊𼑪zÿȅɅ,	Iɯ󼦜Z��?6՟⯛ݝA󁠠��PK     ! F‚%u  [   word/_rels/document.xml.rels „(                                                                                                                                                                                                                                                                 ܖΎðůH݃伱RJ񑓞RА$Ϯ݉ѝڛJߞ˨Ɂע᳜ɼ󩷬e:��Ɗ͊ҧI@՚U庹pqČqתق%󙹙��Dg؅ق4ɝŶl@2ܪջRi#ےԴc囫NӬBΟČߵLܠf]��_z몒%ݫr-A။*ųv
    ٩"K֋y򚁍顈��ǩFVǠ²XܶnՃD_Ǯϱ󫘶8Ө씐B>ˉPi訶}=
    D��㯚aЂSȉQέj񢜆ȴݫT ȼD3ɽҟ٘ŠHÎāǽ`��W1��Doޘ݄TtgݗꬬƠ&򬴷40ϺT��	!ܞ>ҡDށŕ.٪��;
    򭗠����PK     ! ̉.͙f  "    word/document.xml쾋r䉲wG🪴ȩʐïʬ�(ҚQه͐4sݨEʺA [ (��⠰ƻ듽ӽܛoΰЌ׸3̀ WH˪焏H㒈ˊwf%��߃򂅒sࠬ��ؖgKػf秛ӽڎB񜱦磈v����c۳žpCCف񝯽ٹ
    C��ѮEχ󽩩/𺡾济ݎGZ㡎S��,з_yֈx^û}왡zЇ󼡂ɎȺ<ğ˻ѣ네¨>e[:2􈣗Ϣaܷ;ҲЍ{Cpף
    ѹɯPӼWࠒ4'(᠌ޛ݊?چ£‰ܸѾʼn��ݝ_̼m
    ڊࠁG2ୠܺƞá߼bѰÊу;f!󌘒خ򠅐Ԃn񰾁JÃ𝧭Ϸʋ��Ցϝñг癋,rzj“9ߥ>p`Ϻ>ﺞ㭇 ¥cuǤ޳ȭٟ񓧷ǠҬ˷;Ƃޙ9˗vㄍҡѓ>>sٺDĜ*��񾷞쩙ݍw𠒧ԙ熁ݧeݿesأȷu7H{$��,״񠗆Һv`q`@ϯvb׊ޕ֓čڭ˟Ȩᨘ@ȓ- 蠐1ğƣxw鈟ǧ؜ɠτ򸲁I=
    撱᳋ćЄ T_읬2GЕ°36﯏頽}޵җ&Ӓ
    ?ݭ~o߲}ʗ򔗅ݛ`؀޴`﷬܊��Ά}
    ђ֡Gt׃ãʂ+ҀǼḞИTɹڬʔͽڨĽs񮇯ퟣ�ҶzZ}]k-FϏﲪ��Ҳ˭ǐGƴX~^꘻֥4Ի㨾ɁG̮Rݹ��ǂň⥚Z2ճҒ菳@��:ދ<^Kퟐ�َwZࠝ˜ݟ\ֲƞƢts񹒑mfdά]Ъޕ䶦U컺Ć׆u0,󙃉Kw񞌨Z01ּʕ㒤+JŒY͜+j擤+ʇւ䫪ƊH+ϏȀڐ]ޕG檔HОW͚Ǹ]eo 񶞵[ࠜ޻ީ࠽ǍԽ'��ܖ(͋]BϴήOȣђLqt��fœ:ʥ9ڿ?:"ǀ%Wܫٿ+l∠$ԯYΡإȨ1ǻvFۙͻĪԔhΌȠ9Ώ2ׯ`F
    ҩŎDȫɝ=ćœ𩆇%ϘsƳݺ٢xʕ̧ճ񲚼̜e\餳ٶÛŗ6׌uRW6ÙE𼳎MϜ*՚͵MNOhY*z̐)��MӋי��]U߃Ѹ}zаבkƴŇ·͞Nӵ򻂿ןGAxƫ{hyپńO$֭R6@<,߃Ӄ"МxQzퟜ�P׍1[0dz̳;һנ̈́߆ſܯ~e⠡艮;xk=E��|QΔʉJᳺחǺJȆNjၠ`Hf��Ľ/ա񡖠҈̧,΄ܽ5x`t*򃃸\*r˛pJ��̖jIț۸ژ磙،랥ɣ̮Ř|b𲧪{҂N󇏊z�� fʔҩ41Jg ʏiӪ_y
    Գ{Ӆ��!R*ИڸP,ae䡚ʧ?󼔖x��/fMڧGƲuĕ򘸗Hã��TѤ"Ԫ|ɯEþE]*ӁˤʸGҮP^٘<ȣ{f̀����>Mƒې񇜙,Ϫ䘬Qd$ơ%ۥٴ={𠃹ϗՂIՍЀϘ`ؠƥ챰mІݩ]6ퟓ���4��Ų?bÈŽҢ򦿞֞g-Vë֣֟䌍qG��ϕC4Ȑ("`@Á򗞄ԭŌޘXBᅤ,ӽǗ󾒁GރƩ;qnݲ|Ԡ滨񺄗񖣒 x乎h;DZ36hծȴՠ΀,nڛ񋹲U㒮"򂓉桄էhґ=	 ia ��>ߑOаǕ8}궑S`ݷ;ƂⱤn)i᱇UĻ3pħ룼M݆AҐhֲҒshsѶĭԱ٪&ۆߜXd:唼��M>.ݾ;+򼢁虮꯮wɼЃ��wȦ;|��sE몼¥ءoȃooȟpEqu��UL̺ǑKւɆWXࠬKӃŋ:P殽)Ɖϼ͗Њ𥍷ȉg��&mfdpPߣ]h狗X�� ͳȱ&��牛к٭j|κ/«5H
    ՃῳSԨܼ��5TӇ݅J.0ԯ-勘
    ޝ󃰠ۓGs󗒂9㐀ƙ̂ݖCʀZ��󝄛|-މX|4��ܿ~g뙴ڂV緦̸ܛ 4ߴb��
    ЋȻ΃BcВȶ��սj•͔*֢Ę𗼻X9΂$ВͻD
    B��Ɉ/ȇzkJ떿v`~Wäցꄡ#ٿ��񱽇��`��桚	ܗA𽰺ߠBB(򒸒ξ>}ƿ銔Qǿkϐƒ̐ÌІY
    >Fׯ\��JӓțR걽��V+��ڡF“Z`ƅ򘍔򘎤o䤂ϾZʠ㬧16̇ƒi|ʃ㡄ц^rǾ̦ho$ṔbܽaȧXέ԰/򓥸ڿퟫ�跷W-ֺعࠉVʌޛXࠤ塢0דpYlࠬ#.-¹43ȁۢ oݷ	PAt��-«ڵià㌮}Ǔ:גY駝yzr󯞠ࠌƳKռI/CÌG�Z_ܤ3ϣ™¨�j?ߟ_߿܈ƯVŠևҟØK1wnL:)Sб񗇹c؉3؎0ퟢ�t(C��rĖ`vyl}ṮΦeݖ̩ʵOԉF0݂!vQQD*쯔M2>`-
    E{͸=%عYՀٯ;Ң2 ̼'ıƐ ΃( N=DHa𐅔śڎf>\*OG({ѡǡ����嚝��pEۇװ͜X»ޗ⣯DG` ‚ҸЯfƙǀ좢"nD̥8^șLƯWُ>ޚQƖH򭓦{Tz]\iҠʋɀʨև4Z҆һA)Ѯقքס2$J7񕁃��Ǹƺ֕K徢��6-䋥	춲̍bݵ#ө߬Ԁ��X9EĝHך􎢑姊@EƗ҂|i~׊ӧR=Oۃ߂4kĥpGۜդσĄퟢ�ʛD#>ָ&᧪³ ծӻɂ!-ӍdQ~+[̴5ҋ׼
    L޵ţ9՟؇gδ՘ߍ#BP$aT7ʋd:ͻ?Yq5͖>٥gz\/<ʍՆvăЊء��3ɽ:Ҟ٦갶ǒ]֌޿]nI߈󥒼C ä˖ӡϘdj𻗔nJk$��ĢH}fy̒桢%ΖΆԜȚX״🜬ƕܙK]ӄU;`H"{
    'ȃ#L󰀊
    NՆq񃈥ήʦ
    ĥØ񮢭S̕ɡBp
    ̻̙)rHȘ#sVDʑhٶz[q,{żA͆Bҩ
    A quelques caractères près...

    Merci d'avance pour votre aide !!

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Citation Envoyé par magicarpe44 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    	 forceDownload("Devis_bis.docx", "./file/Devis.docx", 6000000);
    	  function forceDownload($name, $location, $size)
    	  {
    		header('Content-Type: application/octet-stream');
    		header('Content-Length: '. filesize ( $name ) );
    		//print($location). "\n";
    		header('Content-disposition: attachment; filename="'. basename ( $name ) . '"' );
    		header('Pragma: no-cache');
    		header('Content-Transfer-Encoding: binary'); // un n en trop dans Enconding
    		header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    		header('Expires: 0');
    		readfile($location);
    		exit();
    	  }
    }
    Salut,

    Avec les modifications en rouge, ça se passe mieux ?

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Bonsoir,

    Merci pour votre aide !

    Et bien après modifications, plus de problèmes de corruption ... MAIS (bien sûr, sinon c'est pas drôle), document word totalement vide, nu, aucun caractère, page vierge..

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    forceDownload("Devis_bis.docx", "./Devis_bis.docx", filesize ( "Devis_bis.docx" ) );
    
    function forceDownload ( $name, $location, $size ) {
        header ( 'Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document' );
        header ( 'Content-Length: '. filesize ( basename ( $name ) ) );
        header ( 'Content-Disposition: attachment; filename="'. basename ( $name ) . '"' );
        header ( 'Pragma: no-cache' );
        header ( 'Content-Transfer-Encoding: binary' );
        header ( 'Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0' );
        header ( 'Expires: 0' );
        ob_clean();
        flush();
        readfile ( $location );
        exit();
     }
    ?>

    http://php.net/manual/fr/function.ob-clean.php
    Je ne sais pas si flush() est indispensable ni s'il faut appeler ob_start(), mais avec ce code là en tout cas ça devrait marcher.

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Question simple : Pourquoi?
    Avec de lointain souvenirs, j'avais réussis mon forceDownload avec ce code.
    Quand aux paths, sont-ils bons?

    J'essaie cette solution demain matin, merci encore !

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Pourquoi ?
    Je ne suis pas certain de ce que je vais dire, mais si le fichier était corrompu c'est qu'il y avait certainement quelque chose d'autre dans le buffer, donc le vider avec ob_clean() résout le problème.

    Quant aux paths, sont-ils bons?
    J'ai fait un essai avec un fichier qui se trouvait au même niveau que le fichier .php donc ils sont à adapter en fonction de l'emplacement du fichier à récupérer.

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Après modification, mon .docx est toujours aussi vide à 0ko..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier docx telechargé corrompu
    Par geof dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2010, 15h04
  2. [VBA] Excel Récuperer Macro sur fichier corrompu
    Par Phenx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2009, 13h13
  3. Comment savoir si fichier corrompu?
    Par stoyak dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 17/03/2006, 22h26
  4. Fichier corrompu
    Par rogger dans le forum Access
    Réponses: 10
    Dernier message: 27/02/2006, 09h19
  5. fichier corrompu ! comment réparer ?
    Par Jean Bonnisme dans le forum Access
    Réponses: 10
    Dernier message: 11/10/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo