我创建了一个带有以下标题的download.php:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$archivo);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($ruta));
readfile($ruta);
但我看不到文件。我觉得它坏了,但我不知道为什么。这是输出的开始:
%PDF-1.4 %âãÏÓ 3 0 obj <>stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Idß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX €¡Xáçň‹g`ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙÉ8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/Š²¾u}qº|^RÄâ,g+«ÜÜKŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï}ÆGùÍ‹Ñ™˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL”ʅ⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%GÑ.....and so on
如果我用记事本打开相同的pdf:
%PDF-1.4
%âãÏÓ
3 0 obj
<</Alternate/DeviceRGB/Length 2596/N 3/Filter/FlateDecode>>stream
xœ–wTSهϽ7½P’Š”ÐkhRH
½H‘.*1 JÀ...and so on
怎么了?当然,zip或其他格式也是如此,但我将使用pdfs。
EDIT:我认为问题是在标头之前执行is_file($file)。如果我删除它,就行了。为什么??
谢谢!!!
header('Content-disposition: attachment; filename=yourfile.pdf');
header('Content-type: application/pdf');
readfile('yourfile.pdf');
应该有效。。。