技术标签: PHP入门到精通系列学习笔记
下载头必须有的 不然浏览器不认的。
Notice 注意代码里边的注释
<?php
$file_name="b.png";
//1、打开文件
if(!file_exists($file_name)){
echo "文件不存在";
return;
}
$fp=fopen($file_name,"r");
//获取下载文件的大小
$file_size=filesize($file_name);
//echo "文件的大小是".$file_size;//这个也不能有
//返回的文件
header("Content-type:application/octet-stream");
//按照字节返回
header("Accept-Ranges:bytes");
//返回这个文件大小
header("Accept-Length:$file_size");
//对应客户端弹出的对话框,对应的文件名
header("Content-Disposition:attachment;filename=".$file_name);
//向客户端回传数据
$buffer = 1024;
$file_count = 0;
//用于判断数据读取
while(!feof($fp) && $file_size-$file_count>0){
$file_count+=$buffer;
$file_data = fread($fp,$buffer);
//把部分数据回送给浏览器
//echo $file_count;//输出文件的时候不能有其他的echo 否则实际下载的写入的图片大小会和实际图片大小有出入
echo $file_data;
}
fclose($fp);
?>
如上 注释掉 几个无用的echo之后 图片打开正常了
上边的注释如果放开,那么错误的图片打开之后显示的就很尴尬了 看打开图片的文件头显示的竟然是文件大小。。。。很显然这就错了 难怪 去比较两张图片大小不一样
文件的大小是109187ʐNG
IHDR # `b IDATxݬ݅ݜƕO$` ۠ۢƅݭť٫q)wwwנRēg{࠹࠙sgᄏ^^䵁��}��r縜)477'Rӄ_.
ٿ
؞_̿݇|=핯��kϾ��Zڼߧ:Ӯ|ڶޛ/SÚԠyh˖֗6Ǫ4jr몫lG׃ʭK5ھ9��ŕɺјϱٲ䷹\ֿ}S��U+��l��ɿ��bZ6ǸkϽؚmuľԏܣ.دӵw3߾،��A
jPĩyZ婷ҢۖŴvӵI˲Fήח+Ԓj����˧&Ǿڶ霪ퟒ���fPΓƂ1-Χں̊`؞iƁpܬұ?MMMiGJŒtΥ̧ٹ)-_WWеSnㄆԱuꓯ릚Ĵ��ܫ0R��-ܛ__迮֖ײʀ
ퟷ�2ZZZRm˳c?גy&0d_ބӠѴdëPÚ��π+<Ӑ˟ZB��ԖAׂޮ]Б顔x��5fXշQw̜�y֫јB!ԕ+Yڞfhȯ+Ի[~ӴӘ��ױ䚡ҒVˀfǵ?(Ŵ࠶1&j<��Ν'W]uլڤҲĒKȜs̡ǝ��`ȐOe߹ʀsˌ3��ࠏ^CCì֖Z2��QN9敹��߹畁۲+߳kݔ䷆n$]tҴ홫Snיh9~��ξ��Í��Ьԍ&믿��فX갰⠋O?͔ͯ6&��۳erܘ֕YŘ~��5��ڂް��մ$*ԇ:\RjllT��XUʼ!UǢѐ0QՖXh��ePދ^Uї��ȼõǧͬ}c˖玪m2À͓ԁ~(O>��ܯ࠭ȅ2lٷɖlձו֏i\فIR^Ӗ{饗d࠽��ߒeיƱџşߙ*֗(?jՈ9rŪh
ͩIJz��T滄��턟vί1cƨƽ��߸��ޞν��࠾��؊I&L՝wޕN>��mǏCǎ֧࠽ו7^ȁKCa��#ᄋ^e>1ЩõɁ
ЉՔ6L��ǵҤbmɲ߆Ӡࠝ۴U��Ј}��זDu͓Z��˿��맨֛n܍��&��Ō40KO��瑦3۩Ѯ=ŞϿ��ဋ؟~ؖĂΩm2BϡөԆ��:J8ࡥ4/߸ìڧ߲��/7΅:χτ��ˑG)nƧf̖A| ��셊����kѻ��ׂ͐\����ח퀸öӴӋ̮ܭ绸L5i]h~��ߛqŕ3��"Ӎ6܈}ޯ��Ōϒ*G,ࠆퟅ�:Iv࠽w7֣Ӊ7hjjכoࠝ녩=ì갃;LΌRÚՠF��իθBםv[y��[JK]юLHꩧ墋/vJΛj5CC\`EƗОe&ܫثcðģλNڨSSĜ��֗ʗ_|t?��/��ܨ>��ڱ{Ͻ����́��CQڌ_AI̹Ф@۾Boꁒ᯿��啵;0 ŞާH%ﳫԦ��ퟄ�VXaYt҅‰)Tޗ��엍6ܬ3eМ?ʻ}<xf]jƔt&��пnVڷ��ퟌ�ŖZ(u؝W࠵֛*]ܿ��x��=ڡRҧ࠽Vik"f66F 3;vն mw��ߝLѥ��德ࠗ1࠵יTK^aŕ妛nҹ瞻ͩ́
j��9yW
Ԗ\^h.eԅ錋/ݠԿ{Əߙ愓OӳϿ_ꎫϾ‚߾}$ࣳΌ̟O<��ꪮ}ĥ㏿֍6ۈ܁ྷއמzڥ؝ӺL��СCԯ@;ϻh��ڤm͚G%¿Ͻ����Ԛ[hֶ֠Mΐ|qcC��y1
Ȏ⠪1bIJك嘟ξ:LձꔛԺ݆ȯ̆H80Ѿ}��<{챺lѾˀ��m„ےڮĞƟԖ|��T6I9HSZѾ��5ܟ罐Cɏ?��ݳNEÇ}Եw57ܝۘ��gՎVZi%'Y})\pª³̲ˬڦ۩ࠪPÚ��͔Cy[6S5M��/ěʳ·߹[YdaڴӋޢҘڗ��ʶ��עӱY��k࿓࠾ğǟ\͢ϼ��٩䙚QڵС_*ޛxᆕⸯ܃U˻�РyʆƎ+?��z衪EBkQn`ǖǐ��l؇;Eyٍ7ި/lllЭךJUa^ȩt˭ؔtr)߰?Ԏ;M~r͠7࠹Σݏ꽿إt
)B폽��۫C��O<��h\^É2%LȰ߲Vgݭ#oǮ˓9Vƭڶ:ҐVYey砟Mʹ
ǷܪǾꫯˤҁ܋.ڨړٔԮ�Кk̮��إ0ܪ빕gjPğ+ؐ΄x��ဿ{%NWѠ<&w8Ԍ3kџRK-ʹʄzܸ0ԙfءͨLɲV͋Z[m֕4碶ܯS��z٪ʫʅ͛g}Х믄zwڥ
Ħ.rӼ����/㏭����-ů��˃?ա¦մ$ޢ]iࠨQ7ݰޚ}Qܿ��C>шJ^̈́7ϣ!��‹ԗ6ǫwՑG쥵ⱭʬE` ࠸㍕&`ܭםݵיʔш_|��Lj̐ʹ暇M꒚iˉ֕gĭ1ڝ:ЍVӼӏ ԅ붍S顁��^yƼ寻ꥡca<ퟀ�嘟^כo=cLΦj.ć윾��ٰÍռۻwoeˈOy̭��j��՛aǝԑ‘>��=0��䣳؝wˀNщ&ܬˑ��ü����=º҆ۀwƻf{Ͻ��s̫뜥ǀa٣~4F߃HT*&P֙⛤߮ݻ;
��/ԥיV֮bͰ¦OgЗ[n��֓Ygݵ͂ͣ����ŷ̒ګλ^
��鰳λשƇiő၃+OӢҁ~AuEѽ#`Kʴfrգ՜��ցۤ��ﳎ:뫿ѻӦϓO?]~����GT��¨ґTŌ
ܔʜ����ˊnÇ˹D��m }۩ƙTkǶ
æݗEГ>L0J! 6ڎ:븆��3Ƙ6bΕ°˙իPÚ��ϥ ډӹ��҇WZdžFtݷ*cɃޠ|0gbuä āSŖڞ?⸌/#dι谌����ԁ,טbʿPԠ{﵎quї^z1Udh࠸
QO?��\LFϬҔߗ\pA��Ө?Æ
R��_@u41$5BsJ^sΕJؙ0ؙLȈи{E��ӡ̐)ƐZٝ
7ܠ>EԽԤХ«ڔ}҅고ϗԟ"ȺwࡘAwҽw<w2힉2+��۽œڤZޟ蟇IްÍʼئ„��:!Dڂǟܢڮԅߐڐbι眍")т1MPО{�ǩ̄3hĺyҩ۾ט_
j��
ˉͷߢ4ě4Nٮϳٶ s=ڹ晕ҠBƾ 0Cؘ=t˝Yʠ͖ޮż
O dϽ��ߙiЯ_?GӾNĉᦘֺ��6ͩĖ@ܸވ~"뼾��]Sڈ墟6ʆ`A;Duיؘȷ[שZ4'\u��żِZTѸ†<І`Ξɤʠᓸ_{���b+&@&Ў! 01H5յ�iݰLՂԽŗ^ʢյN볩Dͤo;0&ǩ̕��䨣rDŽڰoۼ��Ӏݼ��ĄSdL`zT;Ìr��•#)��ثѯر@v/��՚Ć
~=ƹФі`ǖ#ć焵=��EؼllA9bŻ�ۍH61ב牖͊+ġA˨ӏ̊E`%��U_ ¡T��نЀ㵷ʃQX���̼��[ɲe[?⍜͐҉ٳLjǽ撬ƴ��ΫҵӸ⋫D3䞎X8��Ĝ͐
��?͏G-2Db2TիW隷^��@!}O��_^Ӗѭ#ܒӢX
5Ə߷႔L1ӽ��q*ɦܬš#cg&OЄ혠֟ԓP{>ɂ߂5טCş߉͔��5��½Ǹ_N9唥̀w࠽Wɐ-ƾ=ꅖ[ݑԥ5��VF澻_k܂۴(g[2l/ԥI㜺O}Do>��͑튽"ǣ㍷V-ӫ5ت #4Q.ܡp��.&蟂?3��̐ېxفђJ+:ζbLj۩MůʶKy߳ѭY��&#갂^3=Ǎ��
绶ؐЖ��긟
Sbῒýt2Üsιrh$*eŇ2l!`ϞHH
ې¡ި�� 0(dށo# RѲL
��$娙��vǟ��ޣ@ǀƦdu猇{L��1̄È杳NޏٹKխبИ-PǾs
+HǞKЦέiõɁϋX����U |ƙຉԁȻꫯԶ`ك@ۭ˔4˘j΄��b Ѥͷ࠼JߠgҶ��鷂>��g(��ԗmEߟ4ݸι荾Կۯ��̪ƛ͝69ˁ;ǑrՉۓrLq4Ƨ.Ś՟hK˖%LJuĜqđ)Ĥ$븘1ĝ ή時„̼s?ծPÁʢ֟s͑ʠذߛĦڴØcŠ몑T߬ۜ:xҿ��3��ؤΩvѸLlν��Ԭ1ƊߟљD O)ƊDzԟʧüު23 Ʉ痊̽��(Ȉo��6̴ƄkPğ'@ࠠ2hƘ҈,XL``”ɦċ˛L sɁݱߨ&4ۜK\C٧+ѣ~܄p}שCkϽ֖l۩ƛŁɰ^LȐ:؝ˈȑ?ɒBc仛1ຘ܌P@P ̖C;EٛPɌtkګ:j)k��Љ6=N!Uٯ٢J��&.۾ )��Ф˙=zࠜd³cDާЙ0LΌTtiIܮ܇ܪбϲ�٘ږ
ۃЍ|ŔܲΘʙщuJد꿟r٪࠺��Ԕͷ҉б6܂
jPğ@
8mǍ��, ͢(Φ-&ڟazϽ��eƠ6Ӄ��٘��':bďʁ����˶ƙߑ��,ʒh¿Q鄊Tv+\lqCsŖ1ԛCEnːޘ�ӎǁ!&U 믿ߊݖ`̬۶ÐDž������3$ϐ
Iʁ'˶úץ߆�㱣j��Ҷ踀ǘ'"ƭ^؈ؿTƚԴZՠ0ʼn'(=FKÜpՒﻈ��b–f~ːŻ뒴1ΆÇícrRߕ��̪`ըі
ϕЃ
��v��͟vĀMͦǴܭhS#l̳!��iZŸɲE%oέMӃgաju��兾֠5Ɂ50Z¿{��نAĉBbړࠐaY\ο��bǝvԽѶŁ;u��䙃>ׁżįڜ։ʸCYٯѣ Šݒ0U͐G��ڟŠ>1۠��Ǔ퐓a߶����5ٚ��JжӁǡIz-f:��Ѱ`.uڄV7ߡĤqÉܡq[��"I+ۉྎ?k>KkۅL
tؑǚ߷5g��Ex꡵茟W;㰸Hȏ#ʌk
ڟ��́
j0- رùӘKРbԤ֑ć锉9cǬ]7ʵ!NW٧s1#4%'`fxNkи{Ȕ*bYaƽƨ��0ݐ}չƽ?(I%ˌMӯȍ0}'ݎy��֔h߾Ȉ͕{yQג��5�� ($٘¸14š"ʻԂ`IܻʛԤ|=Ӯ辶·zǭoІ��ŸіA͓v뚎A/ſƄ��ˎ�ХҨŎẔ3֜ߞ,ܵNϚա֙ρЗȆ}ᦾqӯӨ֍Z��qsѓżO܆5Ȇvhڱ÷Aˊ[٤=ȷD۳͟t⬦צf7лwtġٵѭ҆:)E!7f}ࠓ#Rш+
ј2M2_��#{rpg,Xϰ*ЎǾ��Ǧܸ[F
~ΠӦԝ
ԕЊCV#
)w��%9#M
jPe͙��cͯԵ۪L${Уm��ٻbk볥̶Ǽ��=îǿm
*>ŠĐ٦X��m\إʄZWѝ��ױ��ŐGƟKܫ0킔{ƂԻLԖrWǎ˂ſT裍
MҜ8YՎ밶ȨqɱÚԇyЧԕZLȚ«a+ۤգ��Յdȶ}S
ѧ2ퟎ�*߲朊'^[ƿܐ(ŏυⷿݚ]Ď טʽz:fXRMP
u��ˢ۬"̯ք|>䴇K^řNؾЧ-yzӧAy:՞����;%��VϑƜ5ͰIuAU��酰ؚՠi跌0)یG͝'ٷ+yϟًɬ|��ٷIų1썬%ݙזÚ��ŅՇ藝ۍĬ'Ǯ쯟@ąڹƆ50φѹn-��şҦYۥ嗗ϐܯ݁vࠣ/),ΠxԆ5Ɂԇ֓n˷κ;o9\%��ĵɁ儅ߢ.Ҧч˜ȗڹyԩҢįr:cʋtȆ5��ǑåXѨ˥$٦8p,kPéÂ֔rAZ
ͺ׆Θ#ܮө|҇W2ѱI٬^ڭ윤י��Xӭ5ѳ5轐FXմ6ƊݨAտ‚ŀڔ_!P[ҵɁԃ[Κ
ɐ&٧]y嶗d��ֶ��2ˬ-ڛĮ��ϚԠ3ӜԔٯ⥓ތ[pLРCߟ.G࠰ʌ6Lڸ㈲aƮț
j��̈́��)&Ύ쳫-)ʆ}˒ՒƕƜ��w��`ٚԠŽȹ*Uҽʺ,ڸ࠺ˊͫ��٠AĨʮ\Q��5آ:R(ɀꘟ۹ڦȴ߸J'ȦĦԖ��*lbСͨZÚt6ɩԐ-ٛť˯ڹ5Ɂ
:κߩǝ��A
~͠QÉX܌7( FMmҐާݢ#G̵R.ԫϣfƩA
&X]łϰӔɓԨБ٤��]\ͨĬWӺIǏĕjPğ����_ցpԇ駞͊˙M��ġ棿keke࠻ѲϢTYƂт5��̒Ϣ麯ղղԻ٤rMˊࠗլ⢲ŝ|BSͤΫゝtҖᴨǁߨ߽ƊɘߒͿܵ:ꨕ͕͕͔%1q]%ǟŖ��Nۨ%dց#��Vז��f̮بyaeƉlj|䆗 đAƌqH~݆ĸӧƗ˖˖ʶW6߹ߎһ��ܼź
BhҏꨑؚښٟKڸ0��I҂ y
쪰ئփE$s2ܱͰޕࠟhĬ%}[ȊNNݿ��c69m譶Nܺ��ؚޱ��DGvŋ��?ײ5��Ŀw²ȫҊqأrFDŽ���bzހ߲ߠZڤ2˚݅i\vJېYԡԧmZסԦxڍ×Z����6��Ɗ=׀^س=ԡƿ5��ᚿΎ��VٲW塤j`}ڕ-vRک}նtnƇғז]*ٚĴؽ��ʋ*��ΖǩȬ/࠾ۙՃ¾DΨ‹.ѹ朏ν��ܱՑG˷࠼#Ć͖Ï?\+x����ࠗ\qż��|[eϽ��ֺϺ뫩ZvJېYԡԧmZסԦسǡ֗^ֿ��ƚ嫯ޒԎ:K?_|��7N=������[
��Q繌1G̨ѣ<ϣX牧ࠌ݂LӋ/ݴںˮڨڹ曓6ܟrȡʻᅲ|��࠽��ܘ<��qȽ#.ڤҶ̎ذƒeΞ#ϼrږݒ6tV{.m魹ܖm謹٧࠽ӱ䇧Ͻ��1ǤG}t��찣λΕ}?6lؖΡറo5��ߛoܱڡƛӋ.۬QF��9��7߸䅱S��Ǥ؞zk⥔d࠽����O>I��}ᾷޫҬ莖ֺiӴ,;%m譶��ڳ6Λљsݙ䱩Ǿ욧ܑݲ˭IڜNښ۴ؓ+e����[
9��!کǝ��Ґ)pʵ۫ϓM��ߜqǝɏ?��os��؟vݶ_]m֝}��ת}��i٩iCgַ蒆Ξة݆Κ䎚ǽ��߷߹˼X{|��ȫٻSƿԙݕ��ϼ��࠻]`ė_~yrԍ7醻9��G}49챃ՁÆ^|��M��c�� IDAT߰*踚aCǦϼ��QG;Zתޭ؝ǩ٩iCgַ蒆Ξة݆Κ䎘ǣθBݑ,PL8GuT2v홽`=��EQğj��࠘\؇ГFȊxՑG&˯DΜsϽނ��˓ʩ۪pс%Ͼ��ޓߧUYٶgԝۛkC緡z(ܑqa۫ʣϽ֬Ԏ:ɺ뮓<��ۘܛkĴƧԃ8Lc6%mL
c=zվ3Ⱦ��؟ޞdN2DϏ;&5jվƱ㵄|��(N��ښَեxu��iچdž]o��˘ո=ԷVז��̘1ϡƌѐӒݜu؝��˞{ݰ¸ΐךk-ދDة�؛:#߶ݛލRBQߣeÎ����סjʆ6Բ��oޟߖcׯऔ��ޜ"ݏߝ휗����ۈ��JݲǝʧOijƫ6Y?��ǔؿWk��&ŏ 6��ؤÏ>ѳxeȐϔ ^y啲ˬԈlВ۰Cn6kѿ]ϼ繁߫Ȧډ˗/ӲeP<aڜ6قպǥߺZ6F��͐vfǶ͂��ܳ샋߲vࠚsԪ࠾͟ծcfˀ��Ӻ伓v͂��[ӹlО{ր6چz߷غ*ݲǶ/"I˶Lmތہ��؞ͷޞ䏿mӞó٬-캘��}��ˍ ݜVe��°arכԜ䯿����/LGԧߺRN<��۫淿��֭ިXR͡۵IֵĢЙ #ʗ˦߉ӣ�!~nj��~qi(ࠈ²��ґӕȲ֓ZoD=fıծKYʼת;“7hǹ碋̷/Kt'5ЃѪ㬡ؕǬf
����ǜۚéڣۗ/݄ÂK:ԛo<?ߏ&ퟓ�ƥ���aj正e
b:ԕ&
ڒаªʱpZԡ傴ߦdR��ߊ:Ǔjô3,3/ǫ҆̆Ԛ}ɟ7
}(TʶOۧߢ'NԣκJלrK⧟}&������Ϥߎ/��ۺߖ٠јQѻRoPm}=FL;۞#RߜǷV��M^Y��J[ەLXȭ:^60<cՙ"nܘMg ץԏ��ӶʉڝlƋր̄ȸ者ǂӺΈŋUr)ܺچ��֛ݶ!ɃỈ"ռĕ쩨fįɰ4ʰ֯3cù֙a��[^hݺq驙دҥ!/ؘ��9m��ֳ툦ڶ멛N��Q:ܞݝ)ϯDގk[h‰LͻߞTԚ┬cϐ՜·Ŭ۪˾<óϿOS:����̡ǝ&]ܶʚtØڊѫ#Lٶ0A˭Ū3Ě׆ٙ`ܻbډȀİӡ����bs��lL��#Ɖɘ飂۞ǘލKLD��:��$igB6��n��褅 ƴǥ\^忦LZv��Bvܓ$k&ڡӽٶ��B!ᨌѽҘᐂRiꛥƄ@ᣏgҾӟZұ��ǧsݍȹ߁^رž���I%Wh5cҕJƆȯ^טcM9�Dĥ&NlP5��Ҡى'Ɍ3Ϝ.��鄎544ȆZθU��ԉ5 wӯﶢPͼ۹є4ے*9Rٟ06ȴњ˳Ƃbbjݫƾܱ
c��tȭϬ"ػ±ڠc85ֱࠑ��¯&��ҟȘ`1ࠤGؐ⻌jЋ��ɡ폵����6ׁ(͞إɽnSֶ��3Ι–
ǻVυZcX)ҩۣɁзؒLŀܲ$pԶeƾeý��
fź��ɩɇ˰Ч࠼Ӭ۫Κ��OTǘ]]، 耮әеk؊pϔ��ن>cyÛŗʆEYLčMΕ͍࠙œl랼Ѡ࠵��ļھի"ࣛӏmݫ��KDŽΎIBFؗǒޤ횘<n<fͼ֣ŌץqNѰʊǁ��X3үfRxԶϏ齇Ϸ5ֶ'ѠZގ͟ȭ>Adⵛr&h"ܷߛbE03ƺΏ_[kqR쁣SӪc6Ш|ܦVNqЭֵfՓӣ��ιM֭ƛߋۈȹŪǨϓ̶ޛǗ!뢨^3L2뵔ˋ͒1ӏ��?1_ۜڛߋd��t鑹��s��s̡ܭ֙f�쥗\ҕ��t6+��4z��ƙR"iӨ놷��O?��g߈ڌӿ۶k?&Lѽ����GϞΞӶ/ŞԞɔaܱɳ[؟Ԉ$٩漯ࠗԣL3ͤˠ,��̴ûb&Ȋ?��֨͜~
㻭~힏=��ŕVԑ#Gʍ7ޤܬ҉8{e.<ΰ֯Ҍ2Dםv[��Ľm
yl.䮇A¶srêˬ"Æ
ӛn٥3ƴuיfӥ؞J査ޔY��gɔАt؉ʫΨ-Ԑ^ϏP��䚧ޑ�ԛ٦bȒrз֧$3Ϲ̸ޱ����垿��$ڲЈY��gŝIϾٸ&UqG$،࠻ྩ&LjˋƒͿɑĒݝg��fwشieޒ靡���ca3ۗ (UÏǞzH��%טBǬԶ)^S߾캫F؟&?��^Ϟ=dɥ֖X@Ɛgp%ƵV{OݞǷ߸S_|1e>y솾�l̫Ή��Ҿ��~ڡĻ��I꣣Ͻ籭.Yt҅Զ竰zXS?����]}(]۴э7țөcG��Û믻� 7ܝw߭࠙xh��܍oޯ뾾磴2����RސRʿ}㰰´ܯؼ܋ڙr؝vI߾��LJ�̽��Sť����܀��o{Ӽ젿ӌVІmҫϱhreۍࠀ 'ܠ'Pdžپ۞d愸裏ԓN;Uܯcemֺx׆կx߂?ҴᴍеƮY9ܼMYҳ̽��ԫᄋߒՇz0ͫn/☜pA��˚ݪбǟϙX˝s˨<xОł^?ޓǫ��fҫWФ��ŧ̗8гgO-臺Qǵߞ|[lN˩��:Εÿ[ҿ��!ubGDZG͠ZȿЧՕ��9ëפܯ߱������ &՞2홎��ٻԪ4Ïuvޛ��ߘ8��>ڦk餿��{�ƝΩէmκ̵֨GLC����Di+Ɉ?ūӣٍIF+����Ьטbۮߣ����σ؎��Џɦ؞uי֖Ҍ㕓OM��(
ĎnjХ9Զ6Ɵx≚Ґ������mʹEȗݛoܡ'ܨ[͒W]uՓ䇪DЩtᄋט[I ��fzꙝ c刱N
לsMҍϞ��Ĥ뵿ڵʬ��Rཪ⣑e��ދ`˫NR)4մJ܇��ݩp3˖[l—Ѯܢʊʟ$$˻��ΝܷػhƯ߸Ì>��ۘ֟)ֈIp۫ϧ߅_߷ljr؝wʩǜ˵��ΝDŽرۼ淿QʹDȉ>LǺ��ηpÍ7h[؝wޖӶ[Ѝ܅_,cƌ��9呱Bќw¿:ՑN-hѿ��裏ֵטâʹ~7v֮˯߈ҍ��Ԛߖ3θC57ޛZ?ӷݙ列vm>-ȻSI¾сñڇĪ۸ٟԤ{l��݈ڊbߊ Sֵ��ȾŪ࠽mw݃\ 5I-֔Rٹҍɡ_Y]V͢��jՈ��ﬨΣmYׁ��#䇏;ߙֺÖҔӽ&۱࠷-؏ͯIŅ����ﱙ؋QWק臿E��ɚkֲͥy瞗ސ��.o6͵װŤf֚nܭd࠽��̘��w/࠼
ڽ����Ƶۦ㘛ɆǏޜ읿|��ORᒠӛE��4&2\
I$րĴ‹غu½ꐿR̉o��yz¯ѣGi cϚ��λפǠ߶²䇏.܌ă칷˯ޢĤ4Bݱ睳(Š8ࠀBȼ¤D}ۯFʝ��'y)csR׆ԚSˇǦ̈͌3Ψ��e&ؼαȿ䶴LէхKt۱vYӤͤ‹.Չ0Ձ̅Ud��I͚ޅFࠡHO>��݆ʈL��^,9@î]ۥ�CɁ܂щMZ-L\rɚ����߾������knjęԠaǝꐲϾض��Ohύّ֥כ.ӎ��˶ɷ^˻1Ǹɰړ8A脽֬Ӌժ{͵֖w࠽G:Ɓ
٠��!̙σ0yƴ��7^ 'čg0Rǻٌ氖^l��p֑ȖL붖͍
JXܵ뮿��Ž̥3ce��B봨}�ڜnañر㪸1Fύ3VΥNsNMqWXaƌx��ΘdԊ��̊d>pĬ��?NﱎfB4ܳfKɽ (П��ܠȿƞUƹYɱۮ7SeǦ'4ࠥc乭kκ
ࠨ녹e퀅hʉ>1��wη࠾{ŏ����f[
�ӪՕႱ0\d|f١Ѭ+̵uA��U1IZОcGYߍݻݷ8Ǹ��:곜Tu��݆+dÍ6Jq7ѣlԮý߭uӾ긷ڗ��&雑鸞uԑ#Xp鶽͗‡侃;֙ӗ,֏$:)N%՛oߙ̌〞zࠑb3��Bv?PܬӍ��MяЩՆѣοɞä����?W6Ұu��^LV[oοĐ1މ㑗˜?ב ܚо5��$#F͐Ƅ׃fF齐G{࠷rdАw.ڽՑKmq!5|��RȫϿ.Ͻ��⋯ޢࠄx<̝LÂ\ؘń;��&=3_6ϾkFڲiQͮD٢~הxˏ֥҅
1٥י֢اJt҈#}cΎ׳̸ŢǑ[��ɟy蝔ٲö<��ߺˊ1hg뭷ޓFΗѪ!��Iu衇Ɇڵכq΅_"K.ٔj심ҨϭkӍ`ࠡמ8��b"ȑ͉0ƶ3 `vHϜ~ܚ'Ʌ݃Ȃ賖��o2Bךӊܷ雚z饝~բ6ݰ#騷࠽ǙЖYfYŘĸ_ަבFꇩ/߸BƕYgޕ֎ʼEʙ·ַM=ퟍ�λҦ`:` ]#̉셟z.ʀҀ<��)ۮ ��CՂƜκ뫮mƴZ��ϝ����:E{aǘP<��맊śoߥ۸Îۆnɻ#Ѷ۫ٲ*o��/ޠܭ֛��曕|��ƦƗѧ����&ْ綾_qxqٞȗַ̿اĽΓ��ロJƙƬž۷��݄¾XƫNܘ��łZȃ��y瞲יgiƙ۫F��
C=Eģ0юg֎kż{䒇څ��h됗A؇W[m֊;։Κ`u庤ԏ4;҃30`֨㟐xܗsR8ژğ߁jxЀij1 5��V½ ��̂Οaǝ*A!ԉcϽˎcL?+ʹӊˆܐ8-Ii��EnRۉԆɡPƇb؉ȹڰ.ñε֚έȈ;Ց
&Hh̟ˠb͢bᱏWk:,2Hd[=bcڐeBӯȘ
_ùØ1��芦6#E[8Ⱉ˿ƙԹG[üܬšoød˅!80oMM
ʯ˭ת&աޠʰBـ��?��ؿ~Zţᄋqط^ "s^{̉'ΑFa䄝Oʌ<83~6ǡь㎑ʘU��%Ϙ ݬ/F̛g嬨ș[mՕց0ԒGp
)BɉݲvӁ퍱 {ܙثϿߪļӉ'ɣϼã#žᏹ衇eι痧Кa—^zʶ⣌3Д{̵碑GRA类މſh=ݻι蔳BDae҅˼��YpE��ۈ߅)-ܾ%ͳМ˝nWǢ˛sĠ3F3Hݧ࠽VǛڋ0̀Y0_^˜#|Њa0悶ߵכjʄ梑>��ҵtLjaR7﹣eÐԕW_]٢ACШ莸 Ư<N>φ!ܬӋֹŭÜ^Bw;ˮۈۮ¹5Q����/AﲫTމIBzƶѫ}&��࠴3Р��Œʈ̔yάƛ rԍ~뤩m3~[
ÀPüܮ��ۛL
˗FƠȻ^��f̈́G递;��ÌᶗࠐӋ̠!ƃƠ\,Խ����ɩŠॲނ��7qໍٗ6lȚLbBݣϽ3瘚a߸䟺&}ʫଊݠFDѡĀ`0]wݑʢϞo?qŌGJEsĘAnݱ7'ϪAD&şSO=UaܣզğHܶ8!Ԭ$͍ݙu!Р?D)쇊[$РѽȚ4Rҵ7ڔ)C4SFL����ࠇ-��S^ַwݱֶVO_בMҰҾYӺl��
KOšy喕ظ۹c��鶞����ْ��֭wَɎsú��Ո;O9楅=42؎٣aXᲬǣc{ՌKc]ว~ɏݷ߹ѻͶ[컀@ơ\~��࠸㱥͠좋/edᅗV
ɵnڲwݾ-kmʧżކn��_߸䵝Sݙ%Ѧ>��ȍXShѰN룽@ߠ����D]rɥZ:��оX۰I��yĶˈ֖Nη0̷ߺӲ̼gxSΈېĂt��WmZƺCS�¹C��Ɵ@ą}€Bࠩͱꫯױō̙t]4ۃ܃́ł��ٜ{ﺊĠ��ܠ$ݴԍ˔›東>䑃ٖľӂP٫����ʵaٻDqAkÙǟͭ��IԪ��ѭ1ؤ½ʈ1Ԁՙݴ̍��ʡ_ ߗ^xr܅#ͯϧ:۵uҔнvࠝޤÙl\gکʹX֢1㢁ٿӀmɷiƋ팦ҡ `����"ˡ`IJޏYǻʔW\qŶI邋.ѱc��},ӈ"jKŀ#8HCX��ǁ>Hژj0㑢ϔ5��"e��aѾ��A��˛ÑJ,Ұ٣ДƏ"کƠ !‹afѠq��:ӱ��ퟁ�wٞY8֍ߴۈ㪋|}aSl[ڙg��b죭`Wz
톍ܰ
݄0¿,��㓨Ġ؎0C+Ĝ࠷࠽��‚ِ��fۧz߹珉$dž8eͯ˹߈–fΗ^zک+{)ԶЬ��Uiވ8,0$vٱ7HߟfL耱A MƠbO nLȬ}LϨRX0ӂkґj̴o֙|ϑWbʇeɥذ۵ߊn];瑢nfX0۰lހó͕1 pAස鷪֓ёԽ1Ԍ��כ_ްӊſ@g��̝Ա����!؋'$��Ý2唕R ދх��ԧϣ'gՀǟ~ˑɍG̍Bhìq4Jݑ$وQH塎ͥϣ݀Ä ׃(`\Ƞ+mgݏ8㠊W;$ЩhׅUPJ
x^͑Յ=xʷ-аҟ��Êݢ-/ݰŠ6ԕ߯S6&Вď߫��@~:vg4%ɳȕ$]ŃLy@܁Åݶ(/̪2*3p0
ȂRV/Gݱ��!Í٣ޚxsӌ��LJgh;&~хg͜lߠ,̐6#u��ɛSӌ��dϼ��术ϗЋϳϚJр>�߸ӖԙfۧQņP0Հ0P ��邇Q ³XҜѾ(kDsҮڿ_凟ýŽ����ѰX`H��NN:ꄕ��!ʠمL3ᆍ��q}ڹ��±܄
AJ¶LDщؿKڏ8 ɯŠ��[nY7~quܴü#ᠤ6ퟛ�ퟭ�䩈ۻϽw;bqfŠˮ-p��VÆȜy)_RIEԅ拉˪!teჁo ��EÕ1匿C¶
ࠁ/k]xŶРlkȫٯɿSxI`Ż[o˶GܽǷ[7ᔕ��ƀj��&,i0CҘꐑ ;̆ۯ߸\|��a~��RȂ·��瞤ܭחу٣烥֧ɲe����ڕͺ1xь
k֢֯ש'8c2`#ŸڅÐ&痺ęƠ��άҸΕϿ5��wpD'[ՊF[>��2(ǞϘ㡑≇ي��ƴ{R?ܱΧS!$ćڧɴ
^ 36'םh IDATƋχ&Մ‡4x旾|ڽգ푍.Җnͪ`��ձ
ӝʢ̏;u��9Jȃڅ݉wɟH#qݢ^ҡw݉5(ċ��Ą՜BL0
6��ԉtካΤ$B��i&����糁uHp2ƙտ��ńIڶˠֺDs̱걝žØ��L…AYٹႳFQΉ2{͐0
ѮRɚq´Ø��J��Tۄ��.ې٘
��١Qdy湊t,��TFίʅDݰ4ڂM��V������A#ٟOP��ÿ˯߄ᩳܬӦD٠ațȲfOIࠧe仐rA٘Ñ��śL;ɷǴвۢ㈳ԭA��̄1#ǨSlwY}��̼yfդxImݭѳ������ٞެ–ҔQמkh`kúYK|DZ*(1гܲNĿpӤkƬ6ϣ��¦ǾNޞ|ŖᦠBsBÚ騌BV՜`׃KdЄ1Bg㩯L}ݷʠPýǴƢl��Qk37��ځӂS��Ǐ蠥ᰈ_uȾƭ̳�G=&<��vӇ��x܁7-=fl㰆ʢX̍¿Ƥ�ַϜV͖wܭ؋KϾ��Kڹ࠾��B-Â݂-VغՅɀƒ WȠqҐᴨhږfm/訏%HNA+dРΘͰg2݆ԅ߀ ƌݟ&��B̘!p٭РW_}5ՊтörدʒԎݦĩȰ��콷Ԧң9̧נퟢ�ͫϼғӖW��Ե|̨T��igm?̦PPÅޤؘR6me"9��HdL6ܘLùƞzD`y֭h㴃„ԃ̀ÄĂ��ƿ+��ax1Ocß4hіFùˢ-딓֠Ʌ3Ǥ٣Ӹ4ʧ;fʴ:Ң1oŴ?CA÷溒Fܭݶ갹v滥ZְИY[̩��{Jȗi-��փ��–ܑ0ƚoۉ%hզۅ補AxZ��s-SM ��!!ـᛞ,2f~ޒ0-܌ܴS&-[O mª»„ǰRԉ݄ࠐ_;kȺ��z_oȚ0ُٔטw݆_]ȫϣ>ԟ晻dˇeʽK۰TنL!ʹeMŵڦŻplί~܌ԢZ帷Ĺ)ũ��4��͖ᮯʎ{ٜ��L��ӈϐɯ^]w��˛nڕإ,łYR ٣̇GĥL@ƞԨ͉MƂ̪˩˯ߜr⼰����dB+aA4>Շ-ǰrŢp��̵ʐǷ֕WˮܾE��ΐ۠.��U��vĄ��0Օąc!1vQ͕ؽ`Phq̗3el0#aӄtb煸"͕q1\CԦ禋EďvЅfcÅوП aºȋ-ԫ،<��66ܛƈCD��š<aր¢RL ѭ
ĦӔLJɏѭ1糋ީ��ͼ`^̴s��сՄш؝vڌ9pↂǑxƎ��&
ABPƼf渓��3ڂ֥ÅD!䣛 Ƌa닯ߐˉɸ!0⧃X"HĄcfҍ��kצpԾ"ءҙڻIEĖ˛F��*c肵M#FX㣒',BַΘV̳mѭכ3ҐW��4\c͕H!��γ>̉\‘ւ˜a͠`Ԓ������Ұē��) .䍷ࠎܬx͠B Q[䎇ڋΡ�A Ӵ.3hԮ<£٩aZ|~L؍݉ĉ.ϼ��'>ͦ PҐK̼o҅䂁FḚ̀d!ɏل|˚á@ďDd&̕ӈ-ĨދKVƔe"DrウϪږߞm߽ʎ-��<xТ=пm
謿��<Ɉ��t10a@A'炰Ώم뤐}Dq{ x' ~:˘˟f3ۉչԍͧx‘ߏ聈bҡ۳nj!Jԏ͛?ohݴǗ(HFԥ>̔��Ä����"0Rˠ嫼8
c0ɚL"��Â#ئӠϴE ”JD"렟࠭˶ۉWюٯӝ넳8s̹ۈAk3&ғO��̍`Ąb͜܃Y#aR؊֣œ|و↜ۆΑυ K.Ø^c㔒DŽbB熚߉B߂ micՠ⎓屲37Ԯ4C֍߸m9}=
`퐙��ʐcAY��ǘ:jA��ƫ˺ϥ݅ho(.X$sФФ#ީÒ݃楹ρ9ׄ1Lj˜ԄШԵ��Ȑe/쇟}(ƺQힹѱžCð㙵;r匠Fʐ'ͣO��H����ѓN;]��R ґ̈∃
˵I#QӁՇᕓOэ6ذb窙$٨̐H҄'0ձؐ4̬C;z{o睭ڍIe?ìZ$Ӭ㬟L8ͨɥ״ܗɿ҇;ŧɹdɥWMˈL|90\4-��psœ/ D ��Ᵽ࠶Џ0w %É0%&伋��ضuž͢DŽǴ҂ЗN|dI
ASǙ5i䨦8ȉf0߇d!괍͗����ٹ:$5;��Zp&gҷ6ُ ��g?ӦդįŒ۟iɕ
ߨꑯΝ柍R"kڶ࠘ި8x敼ÿﱬѵ1@pB�°��CٲRH}6ԏkݠ;cC@šǞۮࠃc|≧UؤOh˴ኟеŖ(ֳ֓B��L`܈ք}
G@G̀Ȇط֙$[gAĥǢݏ8@��}Ҭ4ҠϻײLJpͫÏߗƛnѣ\ӆݹ>ˁܹࠎ:ʮ-bޣ֥*��Ѕb ݢ ��@��oɬ嚨߬Դwͧ{ՔAܘ̯„!ðќP6X;֥ 랻(h7ɝ̴@ƪ��Rt ��Ѐٍ6ܔРe^`ζqМŠt,z\_fڥ��5{]0yଦC#ӥ
4?ۻGدD٫ҿTx{‹ˋda߁��ݕɒц��3��bׄ۾@Ӯ��`PȢ¹Rէ䔏Չ9郓ߗǔƴԿ��ݻQ��ׁ`ۂ Ž0Cݘ6±ћhL,&Ċƌš䢼ɢČlј84C>ڬ��ՠɘ̊`^ah+ɸGʤJՙٴ܌"<A࠼C͘ &B��ӍĴǼǿ��$AY
Ԋ>ޖuń큸V��ý(h}쭗I��)ɟ)fYgڥͫŀ��Ղ#<Sʷ��ӦڄlDğŕӂ`r;蠃ݸ��4-̆DŽ9ùFpĔ#D e��䬡��7c��J?Dp��ɜΰGaԴ7ɅF ţE“ԁvDž ӖTˮϳ1gࠬ؛֍ǪNJ9;ڈҁǯMЌ�ݳuہtud��Ɯנy晤}Ćذv؞��hӯ_baϮ웠��}U@Ȅ'̭֍⓷UƴpڴցҐѲ6V֏zïUڌ࠳۫϶ͮ{1B4hҲ+͠㣸=瞷ࠓՀڳ֕Vă쒇��Ȁ{Xࠨ/ؠdX)`ɔͩ��Ƴӎ}ՠfeĬ4B˂e>PJi,#��P0Ԑ"4ĝ˿Ҽ͓ԧ]̋Ѫ0)͈NVr2˻$JCԌꖙݲڷ<Cݕݥ��'}'Ҵ䊋Rn��2qܸŋݦƧ
ىҬ��Ĉڵ��Nȕ%ׁީXɦܬҸ‰ݔݜ~���=��u��ΰ˴խߎЈOpL$9��穷��¦ϡWǏߢѿEď+ϼ쾯$N����eʛXɰaÒԏ>+qZۦk��S�� 0ޯȕވAf��8ڀ2γ2“fԡÇƭЏݴࠜ|��'⩉SO=լךjꙛɔ܄��툫}̰:G˛㱺ղț��¿��ԃۑUߝ?ƺ舾⤇͎㷡 mqÕղ̇������ݗ憏Ӳgٷ;œY치鬵3όYܞ��t
ǧdܟXʺߘΣ͇Ήֺm߆ϟȳߓv��DԾ)7WΏrv:H��Ƶϥۣץ��gʳ��/e㻩Ýzi
ևϟô<ell��mgl]ƪϋܷqnظ䅿
lNҧܸ~��؝8Ó«��ђڗ@߽Ϙݶv1ΠꉏԱ։u��IǓ̍s࠸ㅸƱퟙ�ѯ顃?̧ل'��߾��h,��ɎgܺeH鶞GȶŶ$Kč$By ܘӆٰE‰4CύiVvĈտǤʄ ؇ćקf9߁b¤ɟ.>ܗѝđLḦ
htlׇ��ދi%Ҥҷm��ʪ壂#}܉Iɉv⼳)ŠՠìɄ)Ӷӗҷ=輣^K��;;͚��]!/ꘆҐפӆӠ��~_ֽ<غ]N3ѓ⌽KّɎDz۞šȩ<b팤ڙםט7֕҅XFͼ̇?ߗܮۑךˀҬɽ1Æࠬнי��ןZȃ=����&ŬqЕ=oՋӷ+оq?CɂǢeIG:ۖț:Ƶ ؏ᅗQ{?fCҢˬݮeےA00Ӧ㸊о��~[ʝ ֹȦƐɡuxߌ£��Խ[mdǜإ۔����\нƍ����O��ȴČ̖ʏ$ʟϷ7ǻfϞw꣨C&��차صd#؊?箸ة?gm_��I˂ֱ
}۶�>&͎fbټ0BLфҙĴݮԠŦnc$v^4tGhƽ6<ƶc��1ѯه}ϣ%D,˥Ȭkڐ:ڍʘ/ ԑґ?טl־s@yʘa��Zq݁Ҥ}��2DVžج��2쇛Să5>¨����ԪчҪ/W��քcc͐��H(cʅ踑욭ᬵB筆
ɈΩZЏޚ����ҧퟔ�ưȽۉꇜޘ,b֒>X_'稱 $7fM��ũŌ삣d;Q훞߆цӟŧQƈאՠ٢AܓPz��ģւ֑åqżL뫇!X‹ʋֈBñԴJƈͼ䰽��aʓ
`ل0L#̳ӼCҼƶ`��c2ƔKؓƳv��Vc(6eg5Sc^ҩȦͶՌٽ‘KƑϛۊ#%-ӊשIJ鸘蘤m`̯FND��ږN߿=��}Y6_6&Ӛh؉sg&ڈ~ٰ8п7ۚIO0
!鲉izÚLߐeY$��czbtяM؆ɔ
}��Ζ3ΝjޮzhqȺ˲"߮&ZdzѬ%DLaƿAȭQȓKl
wԞ؏蟏'O۩̕SShL4bW^Վֿ+ݰ
cԺ:
F䌹ڶNUާִθkG!ͮ
LϚϱ˚˵7+ վЁ|?/Մi͘٫|ȸdnCV��ߞ��ùð4홡 6Y
/$_Ѩ��ؠj!1��o‰Gߪ��ʦƜ欌��p%ЪÛǬO��ص톶"ٿܠ��!ʗ>c͍]չ
߱цRz߸ٌޤFIJ؉Ϛ泺kϑ҆qL
ߙXJ֪۔æɠݙ=I̤6m'hϵ۲ݙƕgl!��kk̹ŵ扊յ!c͙“؝��˗N"w'ַUxY+≊Ǟ߆̜瘡Vc:q9̼pұdصq,mѱHGࠈܘڛm䱞gbۺݟ۵ 䫍ۦ˽ϵۨ����⦖ܾu&Řc7sӏ[ֺ��OѠ¡Lس܌’߇x͢۲ӱL,»
iܢɱ·'IĹΎ[ö߱<ŵֶ5g̈́��yې̊$jb"ܢÅ|��ǫЅJ ��Tή^ʜԑj)VřŶCۿJ}»ޠc]ɽ[lԖ些{cƭÆ"ͼ̩ˮق'��եV,>\';}…b ߑHڙWK]܆䞨ΫֶH”ɩ(
Մ塽��(h��bݢ��ݬ˫
ㄛ*A.ڧȩ T@܀>ڮz'Վ��*7ܵʻ��>yHҰʷ̙ݶ^ܙЦǂͅӓZё˙̎Д'Ȁ0WG&Ⱦ =HǾ
"좰ǦܽDۙbβ٠ކǓ$��ˡȕoӴ{Իĩү0б��u��2ޛbͥ劤Lh̄iL-��߶ՍO���!ǫࠗҡ귖~��NϚ艁L��-Z3����٩\쿛{öܕᤍޘM<ԣϣ5ٔݴbࠌȆ࠺��յ�� ӭc̹Ɩ눅ޅٗùݕLM͙`歙!†;ٌMÔ��ɍ[Y!eڳBߊ峒釽ĜIEÀ̕��neFI!��Ӵ]žۗ*��>Բɓâ RɊDٗ+/��[$z̧xڷj܊QkٖͨG��+TʖӜǘ��㻉L(һւE)Ƿ��Ϙ
Qmde)UꯕJߘfͧԘРŹA̚YǑڙΖijfF֥UZ\㥮��n
zퟋ�̵ُѡۍ̬ħ͘܂̩mٮEٴ8[`��̊ʆ3ݱ0:яaa&Ŷ&ҡلyЦέƝe%Ἁ5ɊŖ֒Bⵍh��ԫܾɛѧޭƣ&3χ ſLx>€ɣΎFʢQ-͗O唤��ɕ?a,��ӿԣ`펚C^ӎ��r¹%ԝTϊ0NΫbࠫS
AӋֺ3.Ŗɶ|ǡڠEhRň��Ģѐ࠲*��m
)ó!ɿ+XwbAյٯ$NЭ썼&Ԛ|nճۍⴳAا७γZ`ͫ%~u܊ŮΘϛ��Rsꅍz׆ڐޅQ㺂͊>ѵj걓帰Ժ)Øˤu۠٧jيɉ귮`ڸח8ԛ;GWʕĵ˳DĚ7vΡЮ粗ih):ͨNړϮ۫;eۧز-Ӡې�ޅr%1z:ͼ(z}Рǥخ`?-iɖXt}jI٤ܻ߫EۘŲͰYjk̰Ѣ癗a啔Iٍ��Ufa8~͞kҐ
Ǚ��(I㟙hQΘꏮďk᭭ѵO2E̔x��_��̽zġ잽[ˇĩǎ؉MӶFㄟӧ`܉0^ف۬ɨI5˚ɦjˉٱ¼媸Θm0OU#ȱĞ̄پU+ۥퟔ�˩٨Șڦ!&ұ)ګǵi;�� þG;��Ϧ_˚֕̓za!6̅٨ʘ燡��Uʞ9ӭL
9cܱ3r0⇋7ɿ|˙Ǭ&ݬ%š۫3ʼnĘ*
آÜ}j02XбɺC7箹G˭��ׇŖkOݯ3גM@iݏ_?Y?|Nˬ��榵ݚۍ
Łг2ykʹZ#˃P'ߤCË#ߗ��ۏܧϞڿ<࠼\Mlʙ*5ſӂƬYHspz˳ϸJ^]+��F6MՂ_JҰ^ڑڨ����<ޜҤ*džJʨEˉ*˕`f[ퟒ�צןࠠߠpŌnVǖaغۭܜ��ѵS��ڒܷķ=Ӛɘ3ꪚ?حɃΕ.3��Y^6:��ҽ֚ÈۯϚM*x-״Ӱ)̙⩯��f*ΞWLݓ෦tՃϺdșr˭4Ӛֈ��ژǑ´:ÌޛИӽޥOQnҳ��$ˠҳ㏢ ʎTE)Õحä}c1aɷǚULlᚦW͠Sք͖~(㎎kŞӑ3Ǭퟒ�K��ҍ˿댐cRƹԂɺ��Ź )AOŨs��ɧ%Q[퍵Rʹܒ& ��F��Ɛt]ŋŸmڦ3`óļδd|ޡ��6
̺߽��Ӛl͢>SXVȬ��ݷۗɺ
ցl��fûı9ǏDŽC麈ƅ҉~K;ҊO<ܯ߃櫴ך{鈉(ڊhΧ.᭹Ԟ6��cuΚ*c࠰㏲~пӺ��sέ̽9D瀳z鿬s֮ZŢгߦÃ7职ʲޢ۞̘:Ͳα.xӎDZީ$2_nj҅M֍zE ��ӏnR~텙GݮΆw_ַnچʍ-ʉՕۖ8͏ʹْ$EȀ늭zĔJTNVҒ��̗CչяR2ޱMخ҆ང돽PfXyu1{£~ˊ무Jߏҝӂ唉ߍ˖io��㌉ǫ͍쓆ZJߛo+)8棯#v^ܾhؙ̑A��sÔ.9K˧ܦ-ݘו3����cGʹͰ9ҸѩÝ˫ .7>AӔŕӹ҉ݤ٬TlϔeϺOЧ꺺䖤|rʽ IDATbv렺衺?*>8рퟰ�9wm߹fZD��҅��仌MJɝ]Ӵ0JdԓÆə-ܬL]d7i[Ƕi;fLϒ��ɣR+ulńMࠈ̪_ղ��d��w����r塠2∍0g&_ǂ ri;{B >챃5m��تCBˉ9kY��k��Ъ`uџr4ƾնգ80-ڛФɦY҅ҼعΪ]Ak4Fⴏ����Ҿ5G֑㵟Ǹ࠼rȜ}��ȣՂ߅IG��ň$g稬��3f,H\omй㾘w>��0sΪ|衇۔JLXŰߎAϖȭ9%?$����ኜAֵ͋ǏӴ瀬IJѝ��>|契⠉ϯߓΨփJ䝕����նȠ<��f��Ĺܘɳ��2��K=\ݿ8ƵlǾ"樘+Eƾ��ˣ"ާPͲ٢��[ӖR
ԢʵuĻGd摣eÀR霃ꟽCꟻT
Йb)ڱηߘŹv
Mڛ'ֹᎬіeʼȴ^1Ҫ*cڝ��˶9h~?ׁ��ܣЯЦͻ⻭ֹ\ϸ3ӊ6։ƌͅΑK٤ΝzɌߛ1Qгp̻jڸ^^>襹��쥝��뗰sÒ±p?}ì �ۊųܭ��ץˈ&ѦMPΑFCǼƦ0֙҇�ΩVhВƤ٤ϥaԼԭ0ҽ��͒>풇Ӎ6ܰmٽȇּ��촏顂ܩģψ͋×2э#ƖݠԬ٣à&lإᇰĘ"ņ9��Ymϼ��5?KKƎxs?۳SO=̈́Ь8vخĂ}eěөf߹v3��Ȯp~Ž:>·=ؘ訋дvȦHMƌĖ̜߱9$㻝䨏ǽҾĦܸ5慐Ɛc>ᱠkɄqx7Y|ӲæР'#Sd<BࠣӬ߂f̄λ0ѠAọ̀ܬb��1ퟀ�ܷߡXܘ†ɑ8����뛵<`nIَI$̡1C悡zX/0YNKQ›��ѼHܠ؈$ϐGîR ۙÁ㣛İØu얽mܩȘ��r櫣bVÒkܛ}njژѣ55cDBϯ䔄<ؼؘȳԮ$WϤl��†͡ߋ|��Gӫ3ȉβk|WE5նJ翶E)Q](iväئ��Yݚݩw܊›ԟ*ᰃ+s̸qࠅǑ��Ȍ˭*Ԍ6бڲ4ٵ0ٟ)-Ѭ4ᇑ-ΤܫNձfǠݜ:
��Ї/ެ]Ǽ$㈼ ?ݹwӍ2㕡ӫ㵥ࠅWIsߺoपJЕWצ؇㝳ɬΆҦG~��د߽ƧְدߠC]:ă_JF9%戇Ͻдǽ��ۍK;\hٕ彡ࠨݴ~��Lz^Hzv͗o߽[ی5Hz8檤㐢p¨ܢ¼:Ζ;ݽqƁ2pҗ̛OϽ��ŢӫR~��òDṢ ֝SںPܜ۷&g��@����Nh/-ȵҝEɃ焦;̖��نȠϺ1Džړ��UՑÅ{챺郢/ǙRَޏ@ʳʅک9Ï@˥'''dі[豩0ԡȍڍyÀȢc>݊Ȥ��‷T3%��.PـX÷ϣp��ɰùփ3a@ԃSشІμPߑܻɠ҃ȋ#2۴9(ބ��}A5߃ߡޤWXAȰ��69٩+ܡGR— ژ—��LٝĸƊਗ$6ȯĹ>_2̥IӉjݜƶ裏ꒂ_|ϣr䒇永[Сd0ՖĺðᷜƠ3��و2
2��.;Ǎ9aޙ'28·!鋏#̊~ïv(/ꘈlͶב덥ن!i_҆Ȇ㈝,#��#˿��-*m��ԴӆǠ2ЪB ঢ়ؖ��֣ퟏ�vT˩ٙҾฦ~ʝm4��іߙ0eïՀ/4â簚ջ͕ࠑõVׂF܈��ʋǐ��IڟāuF&8♟W{oÌܮJ��ƺI맙}߃R7ܱ��“К蜂䖨բ75?։ϱ҂࠾)]ؚ_Z껈wW擏ޖ1}��攮-%������ǜE%0դ'ټy牲쾷Iݣŋ;]䈕ߛӕ{
{<��|հbӳλd��oѷ��ڻΎH̪ӷ⓭څޘ7Hӝ؉产Jݰеⅹ����۶܈יg҆矓����x鸍}gӾ?
��)ץέd��טQzُǞsʈ��GĆ:f#wࠪŒ˥ۅQߩ[<Ş뜽f蘲烏ɻϮ.��ࠬ��K��hQ40Ꙟa-۾��bƑ=0ͱݓأλLJcd+чTǂfўpƒӱĚѶ>��aѸҔ!وʬ|ωBje1q-ɯ䡆ԎΪሠԅȭރĢl0)˶0A#nҪ]Fܡ0Q41ۙtằ䈉)ǜ˄bsǰӇ4^ւ̯秴��6!408B
@Ġ_әf럹 ۤ乔�ᕳΣd��}����ų悂^Iߥ0쭲ܬݖ��\��W��'ۑ͂Ԫ��[ΐ?ށÀѻѵ߿̹㩇A40͢Ƈڤ1ƅQP-
퐓0������EӾǯՕ瓟s��ͨuYĭx͚ x}ކ3"ɁY_0Ɠ+
����s��m��+㫴Ľ7ۨèM\6ɽߘPaٿtZL͜%dzí"p
48fÜqε瘵|͢«Mzf%֖ٽԏ?#ܮډjvƱ���ࡪnjzש:bďꃡڪ싆۬·ުx۠ݩxuԥˌ\b)��欆 ҮߒqZߣX攬aN1ʲnȾ[w߿��秩qh
ݹ겠."s:Fޭ̶ЌŤ}?\̺Ԕ;ᯁқ��᪇݂ٝFݳ˜��ݐ!2`ܿEà帕ЧϤǵʅؑޭÖ,��әֲؒˉ8��FǦ2m��/מ߿��脎"]Ͽ�Ͼ2ҴHХו㧛̜uT'ʇMʼڎ1؋O؞(Ńκ��лɗǜ.ő࠺?ࠂKKʯ)}��ݰջм>RȌ껊��-ב��}��yy鿳.2⑻ĩ2Н`Į&8㣏D_V6ߨGЗӧλKZn��4ÑO< =ڇיuoɟiVՃF,ԍ^`Ы¦QNƌł!Ķ瑖ˈL‰)ӤgV!���BޅțBı衟ۆI$��gŋʡ��āI��fV6Ib߅Ӳ 8 $ߜۏ&EbƬن˧@ֱы0?��zaZvڳā4ŸےmΓFΐF̽L|岤GЮڶ��#ϼӊr؝wɋ/ܨČDШZ̭̄⛘jb\ϕܯϽ��ؗɕ Ýg߁ڸ+ө毤b
Íö͋K>h`ʼĨaĦ5Zp̑">ٸ3��ɑӎ?ǭΝѠs4Űuo࠽ޚx9hmɶпr”⥛تï:ߣBǑʼn*%Żܧɦɞ\ؖ̌ߪ謢Xa瑩H鵷˰dg湍߶רaԵs'ퟫ�҇+��2ƪ 'ە8%՛BȂ/̦Jջ,h��ȫ˦e��gޖ[nyڬӋ擋/Ӷcq��Ճ<H3ش7o",Ošŝˈƺs뛤Mpx.듵Қˋs٢Ȕ ͮ◗غȕޟԝ竖Wӈ²[ߞӛΫ��cϞRϷ볙or��Ŏܩ��dN܋qȝdtø��em7զߟ٩?ɯ˖+W]
E��'��֙]T\3^ί?ԁ؟/劣䧾؋Jkͣο��_NڜnĮCLZ
ڟ��光㦧|sɬ߅ڻ��t9׳M%вط_ʜzǴܢKڱɇ娋Nӆ錊+K��½ퟻ�Ÿ��֑��㱯Ņ帑"ǜ)ݾ|GMǿޥ⩗ʿԷpvUU:螻3ɤ'@B ŐBՄA@ʢퟠ�ʅAСϽÊ؞EQ͘h
ퟆ�;fB 궊ݻܖYwﻓ(">��fʽ謳����؎밐DІއɝ˖˹֞uJ= f՜Gċ]aU~wʔg\-z^=]69뭙֟AϡӾ~ތF��w͔ဘV~뵙;��ޒs��툥D8;oyܴe㵭b`yt@̐ ɕ̊ҝxᐔ$Ɓƹ"șøࠀ%࠘Š��LjDˡߠôݜ̕&0f$b$u3Фʱ`ʡ0 ǹ۩ȩ-:}²̆̄Š܁@vŋ̛͎{ B>K䆻|Z׳=���߮畮만��ىƙٸ]ۆaఌލHLjVϳKӹj_ؤ҂aV̥瀠 Ɓ9̗A$6 dV4`إQܯ‹ڟk��гΰ۪͗u4h,<坰��Ļp/ܬ2ޗgPϰbӖ C䡝`��ʷVҰ̂�4ɟFoL|��<`ðѹ��Ɓ+BޑЛn����OƬJ+즇#
EqɣݎސBࠣ.̘࠱ηצeKQ ȸ��Όަΐ6lj"Vٿ+�� 6Ü֧̆#Lp��&ΐi࠽XIa`}b��Z=a⾩ލ`ǼVҼ`5!ŧ]EƇ~��뢁A荰ݰÍշʳ 'N݄Ŵ؆ᘻڱ͆zיg먘˯}錫8WN^��ǗcԀΖ>X̤H>|ЌؿWF������MGIeڴھS_ߝna��ťhjBأq{헾ό_ג錠ωӠ܂@ЙS��`����r䡁(àϽfƍӡ.۞yXǭћlxbЬ;(oة��̲ۦإj赚/̥֕בĤ侇Kޣٔo࠙מzԔ࠺niϛvV[NJ誩lazڅl纍ܮ!̦ߠ��ʸќտԆm7Iǒƥ2EEۏ=mZaA.����Ȯʫ\'ͦџ뇟ӡj\ʣE͌Sաhŷ��ߥjͿZApӝ�� wֻ~{Ѽ{ϗeԕ̥۳?+֮aPսד$з˪��ܫ́G܁(零Lꆎ]將Ρذ2GͩáР9zйf��Ü͖ӊ��̩Ԍ#VPǧ��̙fzꑀ”
(Ø2AӼ�� 4Jl0Z嘂آʡV1՜v١듃›贘T9��`j3f��ПcŔʳШٿkĂ3`SȎҵ��ؠåʸX����/ށޟù��}؝T{
Y#yc^D3۵؝ֹ ٠EۆӪ=즑ʘ����5E̢w��췞xBү1xə ڹǠ3eç725{ƴ_1kr舁芫ВԹܞ��mߠeဨ瑳��؞��44߅Μޛu軷۳=/ԟٲ˺ƜΦʆ38ўʲϭNJ5y܃m¹ퟹ�i7Ě��ʯγºࣴ3S#ݜ%s��z㯜ܶޒq �� gнC@ѥڌӬڶ߯ڨ��BеیնњÃ0ȧࠟQƩꓚ&VūϽ&<úޓĴnݘֶ@Ә��͎ֈӶ댯ְꪤܷΙױ´м@F߿��İLjəOJeʦI��ۺ^��kZӈ��ϺTѸƇߒʩчQ��؉FЎۺuд߸tMӾ����+ѕٓ? Ņߕ5K⫮ю蟐��cGKӞ#ڥV،̳��nߎ6^ތ:EVſ͍ZҒo|Ujмִ͛ĹõfEj٥ѫٲ
Õp# ݫޠ̦ό ԟʨӯݗT߹e��쪞pڗvᶻҷˤ^%����6٠=AۣՇɲƷjČMΙҜ֭_ڒuڃ ӷÂ꼯ْ��ࠌӋŕ̤��=��5靾J*оޤaΆަu'ɚ?-`Аۀ֞ɰ��֯~��҉̗ДÃʦɧf̩ѐ|찔ӢÉ5vԺg(��4B>Cƾa룝g ҡѡevݱo
า࠽��8Ę>�LȽ���Țޡ3'$y 3_됤oᜆ��۴ۣ"ԫ珟Ȍߞ硦ؖЂ́ԐlѰqϠ̦̦ƫs_?
舉 Ӄ 'ɵ5֘؎̞‰cۦsퟝ�x>>S`7å��ĄzGӁQ*ъڃՆ^Пɧ:::[��N̴[O4Ͷٞ��܃ȗRljìѨڧݹϪ`ĜҎ1κ��=ğ͘fۈ ̛��/<f༧Ǻw߳]
~Jٺ䪜͚5Z瀍łϽ��õm(ٲՂލ@pyD҂#?��̂`��҃ʳퟟ�k:Àى dc࠹״ꛏßo煝ę!,ӷРL
T͇uԊq=ûL����{VΚɩ>oy̱ӻﻨOئٮvzū^§рإKש`Eī��A)ߏ}]ܵ��Ųc̼ٜxٔ��ϬЧ猎ߐ��զȏ׆[ϕ瞇JǶ܊1f5֊5ѡeʹ��MڐðĚe`ր%ڧʽ��v
sȄmfγsd盾ڡß
*����ᮂНa��؟%rԌ۪;9l谡Б鑼joӛ]мⴲ������]g鋙dԉ<:ŷًR9܄v,僠h۱ճʠ ͣȫԅ<2>��=(Třպ-��툱ӷө��o؈\U=��ɍ̨ࠪ9Ďќǎ麖)ӡķ9\ǼtK��حצ��]���^ڿ��ё��ɖޗێzϬ}ūƫ��ә鼝Ш��§F¼��Ƌ9��Xقi衰Դ"И_E%uퟯ�`FРڃTĕ|@ŧq߃\0ڀL0ǡƃ`0VE%jPQK3ࠊE��I��Q��
`‰ۜՀ"modˀ{F|v��"Á hbl��côݓڏӁӞֺ<R)ڵ\ۤɲLH4܅HکM_؟k詝5[捯'��YH��Mq��|_��A ȀSᘛυ��ͽ��Aڃ4kτD܅/ża��oޅҠ끦A��ۓ蚃V3ҞǦD=h
a��ۋ}?ƏŒǽȡ좠��ڦ>ࠍ6ژӇͼP⛀#Čʦɳ t4!,.\죠PĻ ĠTrΠSߥ꒥z6 >n��Oݲ˟+424Y|܀&ߣQbefܛB(ϸ袋T`ÝZ2OLԘ"ث��Ȳŕ؋҇ߖׄ픟/璎/f��Jij/x֚4mā4c脡-҇˼AɷƮ s֟��шČۙ��嵇����Ǜ%tնuМ|匩7Ȉ{��ђ��ꠈ|ˇ٦긌zLFa۫²��J]��ߖ)ZE࠷OߌUәԜ$0��қl]zֶ6?��#ߏȂ��˝ӌ(葠ȩف؝��‡澯٦=ӘوdףҶ$����^ϿƴTͯV벪7T쨨-ѦGڪo*݃ܛ=⾷ߓC[t��ē]ࠍ6֚c)ϰοէD࠷.{����ǴهėЌ뵦Èб2��څO˟~����ʢڽ��vە6Z��%����?"G࠾8ʴo / ӁōMȁ2ٓ`��Ă˜_��̄ɬC†B��݀0]᱐懆Ģ qɝ݅߰Ҩ95ī xػǜ¶̼1AŇď즱txp3ۗţ Ÿ9܊ɋʱ��Érw 55>弡}Ϙq݆NцhRiĢ��KĖƟgb ͉A:'ퟙ�xѱي͚HեŒᩓ0]"ٯk˶ʺ"ʥ&5Hy굻U@CDžɊ װތছOSᦖ̌Όs��`Ih?ȢўɝM잫ζɰƶƻӆYQsjϘ峨ŃȜH0в_4��2?υ��ۚݹ暁ӛ3ɵ͛.1Mơ{ӣ~4"c��J;N̑T࠾60̢a9��@lܫԩJ!ӏ֧4ͣZծ˶ʵ䈯$矻U��@J!���ῄЯܫxf7ۨà־F#>Ͻ�� >z#䑧鮔͗<ѤݱPLܸъտ͋, IDATؔ9ܐ;4p+ߩ��ځehOӠ��]��и̪A־52�ȁЍژ-]cFʦo8F��ʐ!e��^V��Ψ6֨Pؔ@Pڂѱ&|��뺟Շ0\5ň{ҟ¡��uʰʛIwփ˛gHשkĥʃљ魨̌٩+νT^h䳭-Z&`䫍-zjάс͞d��ؽ��꒑ڏ镇o܁̜ߣٯؔrkĤG۱xr��՛ϖQǼ: 0ʗВЯﺯɫԬ_Y��ʨ (Ӄڳʨ+͝P_�揻H����͘8sƂO.ȎѦퟶ�ٹZ̦m��eÔϹUP.Ώ֕b֔ۋںɃḙ��xࠔg=+Cʵҽ��2]ҳ>"շ<,r计:p��ۃ琛FMÀ ̂Dv̥ـ>TxԅʥQsӃnhϹ҃CsŠʘ��@ᐙװ֕שƆ��ăaĄlцqFЬҭ3ɔw3?��#c࠙p莿��>,yخͥ҇
ͪغ{҂矂(`bS4!;F̲ŧ4
.̐EEѸ����ڛ͗;׳ɚs懓ű!ⴌLO^-(k╺ݩzBڂŵC+a}I@һHͯa중&Hޑؽ癌Ҽϩ
εt䍔#B1}ҿ.\ŀ銽1,ߨ ,0Nԓ>ԁ ݴһU��ǭh̹"Đ˃۳3ԉّ뿽svƝ
9pι}Ľޭ߳JfOD({߾\koГsiחė͘uƷ
r��ɝJԧ4շK‚°0ˢɽퟍ�߇>���NAɹŨۖbR/X‹=GΜՊ[Յ46ۨܞkϹ'аߣggṳ̊ ⾷ߧ
ɑ<~��܄@¸N>c~֖^Ʀպ/үJӑ껷ɋÂ:ѩ4fϖ5̖m��W��͏~ӔSǗN㳒軑ӨѼ͉>��>%��̸����ըڪCșݔұʬ薻ϽAV����}(žPʟV6ƴ/|Ɋ˱ệ7ϗMҮe+ƫ��#ƻ˜Mޏʡ4ij̋~!{qݜ��힘xݴラȂŲdӤڦշR癥>$㵲lƢY;~Ӵ͙J͕4ڡ8K:пش^��FJ%h��)ɨ$fʟ뺛ϓߛoI##_}ŔV/��؍d鶻˃࠾ʚR5؇��2Sڌ��ozܜw֥R_ۯ�ֻȂ˯@ړ-ٵҾצNխǏֹ逝��֛"����bıa⇉ǻ(ύZbG֫젒e\ØЫrn١zͅìȃƉǾ0?��ăaE Aٙ8Ĝ
L\<ȲK0$IL),ҙgޥأneы߿��ĹQ'&>̶'PBSAҝȑL��ץ)ޣU1Ҝ7ПʻŃ `����ợwPG᰷4կ֝\��ѪL@ "߿��䋙㿖Զڦ"秴cը7Dzo܇ײ{ז簕I<ЃyԶH�� ²0Q|ŀ8{̉ߌ��ތ��ĹӢ'뫈`rFCƪ и
݇adƶf&邾ص��ʨAĜܭ6Iû��h۰X̏0|]#ßX`
佐h
ؼђhD��ࠞӿو$6٠ö3Ԗ J纾T܋����ֹhiҷ`՚~ދk[һʂ ȹ��˖ϳ]wޝ*��ߧ{
Z͇9 ؼ����=镩Դ}؏_ɀÏŇq~��aʚɇΜƁ<Ь–.@Ц-䄓Oу˧����5��xNn��ãިӎ~͔3ΐjཫ{
RӱKAGڹɴКя宠ٛV곣N;̦'ܤրת#NJ뉸S͕x羟yLj��鍉ѾAfʇш��
š|>Zҝ>��ΒϰIͧݯ��ޚł]+ĜG?t״࠶Ӗ:ͺNJ帷J易剠 nΐ5dŴ>8Dw#+̃ᴩ҅࠺Ɍ��썧JſҞOݗ��Ҹ��皒ܓ/ιsƱƏHe囏&յw߫Ƙ��KſĆҪh˹ȟ/gK��mퟢ���,¶,˶$햮۔Տ?(��ꅿРeǏϓ��ޯCw߁ࠄԮ@ZЃ촮Yr����騊㧖˒ܾ$Ԯܗ��ĢmëСV䠯ʞ롟8м坥ͪǓŒ`‘AȐ̷ʃО
"��Μe‘؏
?GAєʪJ��vaUM ՟��ıēߦࠇ1С"tͨeퟸ�ݲyrݝⷺ��a
切换文件路径
<?php
//$file_name="b.png";
$file_name="乔彬.png";
//如果是中文的。需要转码 php 这个古老的语言仅仅识别中文转换为gb2312
//$file_name=iconv("UTF-8","GB2312",$file_name);//在google浏览器里边试了下,。php 5.4 下边 中文不会乱码---放开直接报错
//$file_name=mb_convert_encoding($file_name,"UTF-8","gb2312");//这个也能转字符编码 但是 就当前这个来说并没有什么卵用
//Notice: iconv(): Detected an illegal character in input string in D:\phpStudy\WWW\087_fileDown.php on line 6 //这个啥意思
$file_path="./image/".$file_name;
//1、打开文件
if(!file_exists($file_path)){
echo "文件不存在";
return;
}
$fp=fopen($file_path,"r");
//获取下载文件的大小
$file_size=filesize($file_path);
//echo "文件的大小是".$file_size;//这个也不能有
//返回的文件
header("Content-type:application/octet-stream");
//按照字节返回
header("Accept-Ranges:bytes");
//返回这个文件大小
header("Accept-Length:$file_size");
//对应客户端弹出的对话框,对应的文件名
header("Content-Disposition:attachment;filename=".$file_name);
//向客户端回传数据
$buffer = 1024;
$file_count = 0;
//用于判断数据读取
while(!feof($fp) && $file_size-$file_count>0){
$file_count+=$buffer;
$file_data = fread($fp,$buffer);
//把部分数据回送给浏览器
//echo $file_count;//输出文件的时候不能有其他的echo 否则实际下载的写入的图片大小会和实际图片大小有出入
echo $file_data;
}
fclose($fp);
?>
代码封装:
<?php
function downFile($file_name,$file_sub_dir){
//$file_name="b.png";
//$file_name="乔彬.png";
//如果是中文的。需要转码 php 这个古老的语言仅仅识别中文转换为gb2312
//$file_name=iconv("UTF-8","GB2312",$file_name);//在google浏览器里边试了下,。php 5.4 下边 中文不会乱码---放开直接报错
//$file_name=mb_convert_encoding($file_name,"UTF-8","gb2312");//这个也能转字符编码 但是 就当前这个来说并没有什么卵用
//Notice: iconv(): Detected an illegal character in input string in D:\phpStudy\WWW\087_fileDown.php on line 6 //这个啥意思
$file_path=/**"./image/"*/$file_sub_dir.$file_name;
//1、打开文件
if(!file_exists($file_path)){
echo "文件不存在";
return;
}
$fp=fopen($file_path,"r");
//获取下载文件的大小
$file_size=filesize($file_path);
//echo "文件的大小是".$file_size;//这个也不能有
//返回的文件
header("Content-type:application/octet-stream");
//按照字节返回
header("Accept-Ranges:bytes");
//返回这个文件大小
header("Accept-Length:$file_size");
//对应客户端弹出的对话框,对应的文件名
header("Content-Disposition:attachment;filename=".$file_name);
//向客户端回传数据
$buffer = 1024;
$file_count = 0;
//用于判断数据读取
while(!feof($fp) && $file_size-$file_count>0){
$file_count+=$buffer;
$file_data = fread($fp,$buffer);
//把部分数据回送给浏览器
//echo $file_count;//输出文件的时候不能有其他的echo 否则实际下载的写入的图片大小会和实际图片大小有出入
echo $file_data;
}
fclose($fp);
}
downFile("乔彬.png","./image/");
?>
文章浏览阅读245次。macos mojaveMacOS Mojave brought with it a slew of new features, the most striking of which is a system-wide dark mode that applies to all native Apple apps and compliments Apple’s Night Shift to ease..._macos夜间模式太灰色
文章浏览阅读2.7k次。openni、Sensor、NITE(可选)这三个包的版本必须匹配才能正常运行主要参考①https://www.20papercups.net/programming/kinect-on-ubuntu-with-openni/②https://blog.csdn.net/u011092188/article/details/54861591③https://blog.csdn.ne..._ros16下安装kinectv1驱动
文章浏览阅读1.3k次。Python学习路线图的Python框架部分有Django框架和Flask框架,学完这部分Python框架就可以去找Web全栈工程师工作,独立开发前端和后端业务。Python学习路线图的Django框架部分需要掌握Web主流框架-Django的使用;可根据Web框架设计,开发对应的数据库;可根据业务流程图,开发Web网站的前后台业务。黑马程序员Python学习路线图的Flask框架部分需要掌握W..._传智博客2020 python
文章浏览阅读705次。MegaminxMy Tags (Edit) Source : fishcanfly Time limit : 1 sec Memory limit : 64 MSubmitted : 59, Accepted : 47M_hoj
文章浏览阅读144次。snapchat注册不到Here are three links worth your time: 这是三个值得您花费时间的链接: I just got a developer job at Snapchat. Here’s what I learned and how it can help you with your job search (15 minute read) 我刚刚在Snapc..._type in snapchat search
文章浏览阅读218次。0.2.1多核CPU是指在一颗CPU封装当中嵌入了两个及以上的运算核心不同的CPU型号大多有不同的脚位,更换CPU时要注意能否与主板相配频率是指CPU每秒钟可以进行的工作次数但注意,不同的CPU之间不能单纯以频率判断运算效能 早期的CPU构架主要通过北桥来链接系统最重要的CPU,主存储器与相关适配器设置;由于所有设备通过北桥连接,所以每个设备的工作频率都应该相同;但
文章浏览阅读932次,点赞19次,收藏22次。1.作业要求2.题目选择命题公式的真值表用户输入一个命题公式,输出该公式对应的真值表。例如:输入(p ∨ q) → ¬r,输出:题目描述关于为什么选择了这个题目,最后会提到 。3.所需解决的关键问题4.代码使用Python完成注释已经给出。import itertoolsfrom tabulate import tabulate # 导入 tabulate 用于美化表格格式# 处理蕴含操作的函数def handle_imp_离散数学实验大作业
文章浏览阅读65次。存档日期:2019年5月13日 | 首次发布:2012年9月12日 工作负载分区(WPAR)是IBMAIX6.1和更高版本随附的许可程序产品。 本文介绍了导出了光纤通道(FC)的WPAR的概念和配置。 此外,它还描述了在WPAR内安装和配置Oracle数据库和Oracle自动压力测试(OAST)工作负载的步骤。 此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着技术的..._fc适配器存储配置
文章浏览阅读5.7k次。outlook收邮件延迟When you click Send on an email, it is typically sent immediately. Butwhat if you want to send it at a later time? Outlook allows you delay the sending of a single message or all email me..._outlook delay delivery
文章浏览阅读7.4k次,点赞13次,收藏44次。attr用来获取属性,prop获取特性Jquery1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性属性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”jquery判断checked的三种方法:.attr('checked'): //看版本1.5-返回:true或false.prop('checked')..._jq attr用法
文章浏览阅读1.2k次。feedWhen Google first released Google Now, it was celebrated by Android users across the board. When Now evolved into the Google Feed, however, this change was much less accepted. But the Feed is grea..._feed ang grow怎么自定义
文章浏览阅读267次。meteor构建app程序This is the second of a five-part series on building a Slack clone using Meteor. The aim of these tutorials are not just for you to blindly follow instructions, but it's our hope that you...