2014-01-13 95 views
0

我想创建一个链接,从服务器计算机的根目录下使用php下载excel文件。所以我写了一个简单的代码如下,用php下载文件

<?php 

    header("Content-disposition: attachment;  filename=example.xls"); 

    header("Content-type: application/vnd.ms-excel"); 

    readfile("example.xls"); 

    ?> 

它就能被然而,当我想打开它下载了,我得到了错误说我下载的文件是不同的格式不是由文件扩展名指定。我也尝试了与jpeg文件相同的方法,并没有得到相同的错误,但是当我点击它时,它什么也没有显示。有人能帮我吗?我不是很擅长编程。先谢谢你!

+0

当我有这样的问题,我通常先注释掉'头排除他们()'函数,这样我可以看到,它的实际发送正确的数据。您还可以将服务器上的example.xls与保存到工作站的example.xls进行比较,以确保它们相同。 –

回答

1

试试这个

$file='example.xls'; $filesize=filesize($file); 
header("Expires: Thu, 19 Nov 1981 08:52:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: no-cache"); 
    header('Content-type: application/vnd.ms-excel'); 
header('Content-Disposition: inline; filename="'.basename($file).'"'); 
header("Content-Length: " . $filesize); 
$fh = fopen("$file, "rb"); 

// output file 
while(!feof($fh)) 
{ 
# output file without bandwidth limiting 
    print(fread($fh, filesize($file))); 
} 
fclose($fh); 
+0

我用我的旧网站下载第n个文件 –

+0

谢谢你的回应。我尝试过,但它给出错误'没有收到数据'。 – user3428185

+0

我已编辑它,它现在对我来说工作正常 –