
关于php的header()下载程序在linux 执行问题
我写了个php文件,有段代码:$filename=$date.'-yc.csv';$get_url=$date.'-yc.csv';$file=fopen($get_ur...
我写了个php文件,有段代码:
$filename = $date.'-yc.csv';
$get_url = $date.'-yc.csv';
$file = fopen($get_url,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($get_url));
Header("Content-Disposition:attachment; filename=" . $filename);
// 输出文件内容
echo fread($file,filesize($get_url));
fclose($file);
exit();
也就是从数据库读数据,生成表格;这在windows 运行没问题,但是在linux运行,会把数据都直接显示出来,生成不了表格,为什么?请大神指点下,本人是新人,请不吝赐教!谢了! 展开
$filename = $date.'-yc.csv';
$get_url = $date.'-yc.csv';
$file = fopen($get_url,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($get_url));
Header("Content-Disposition:attachment; filename=" . $filename);
// 输出文件内容
echo fread($file,filesize($get_url));
fclose($file);
exit();
也就是从数据库读数据,生成表格;这在windows 运行没问题,但是在linux运行,会把数据都直接显示出来,生成不了表格,为什么?请大神指点下,本人是新人,请不吝赐教!谢了! 展开
1个回答
展开全部
可以吧文件直接写到一个文件里面。
在程序上,可以用PHP_OS得到的数值,来判断是在linux下运行还是在win下运行,然后存到不同的地方。
在程序上,可以用PHP_OS得到的数值,来判断是在linux下运行还是在win下运行,然后存到不同的地方。
追问
“可以吧文件直接写到一个文件里面。”这个咋理解?
追答
<?php
$date = date ( 'Y-m-d' );
$filename = $date . '-yc.csv';
$get_url = $date . '-yc.csv';
$file = fopen ( $get_url, "r" );
if (PHP_OS == 'Linux') {
$content = fread ( $file, filesize ( $get_url ) );
file_put_contents($filename,$content);
} else {
Header ( "Content-type: application/octet-stream" );
Header ( "Accept-Ranges: bytes" );
Header ( "Accept-Length: " . filesize ( $get_url ) );
Header ( "Content-Disposition:attachment; filename=" . $filename );
}
// 输出文件内容
fclose ( $file );
exit ();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询