下载保存后,文件头多了 0D 0A,怎么才能保证不产生多余的字节呢?我的程序如下(平常用的是utf8编码,excel文件已经转换成gb2312编码了):
$fp = fopen($excelFile,"r");
header("Content-type: application/vnd.ms-excel;charset=gb2312");
header("Accept-Length: ".filesize($excelFile));
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename="'.basename($excelFile).'"');
// 输出文件内容
while(!feof($fp)) {
echo fread($fp,filesize($excelFile));
}
fclose($fp);
//@unlink($excelFile);
exit;
$fp = fopen($excelFile,"r");
header("Content-type: application/vnd.ms-excel;charset=gb2312");
header("Accept-Length: ".filesize($excelFile));
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename="'.basename($excelFile).'"');
// 输出文件内容
while(!feof($fp)) {
echo fread($fp,filesize($excelFile));
}
fclose($fp);
//@unlink($excelFile);
exit;
结果也是一样,是否哪个包含文件中有多余空行的关系?我检查了一遍,包含文件中,多余的空行(<?php ?>外面的空行)已经删除了,还是一样的结果。
另外:我的服务器用的是windows的平台,是否平台也有影响?
0A是换行符号:\n试一下编码转换。直接:
echo file_get_contents($excelFile);