微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php用readfile()下载文件时得到的文件结尾多出一组数字内容

PHP Version 5.4.45

//这是原来用的代码:
echo readfile($files[$i]);
fclose($outfile);

▲可以看到下载得到的文件结尾会多出一串数字(其实就是该文件的size,字节数)。

这个问题很奇怪,在本地机测试没有出现这种情况,一放到公网服务器上测试就出现了。代码PHP版本都是同样的,对比了两者的配置文件也没有发现可能有关的配置项,无奈只好X度一波,也没找到有效的解决方法。最后灵光一闪,会不会是readfile()函数的参数没写完整(因为是抄来的代码,没细看过readfile()函数的具体用法)?赶紧查询一下,果然发现是用法不对:“readfile()函数会读入一个文件并写入到输出缓冲,若成功,则返回从文件中读入的字节数”。所以抄来的代码在前面加了echo就使得下载得到的文件结尾会多出一串数字!真是坑啊!
去掉readfile()前面的echo即可:

//正确用法代码:
readfile($files[$i]);
fclose($outfile);

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐