2009-11-16 31 views
1

我有一個運行PHP 5的Intranet站點,需要列出僅包含Excel文件的文件夾。PHP - 從Intranet網站下載的Excel文件列表?

理想情況下,用戶需要能夠輸入一些搜索條件(即日期),並將文件過濾到超鏈接列表中。然後可以選擇這些超鏈接來下載excel文件。

我至今是:

//get search parameters (from a form) 
$s_Date = $_GET['s_Date']; 
$s_Shift = $_GET['s_Shift']; 
$s_Name = $_GET['s_Name']; 

//search folder 
foreach(glob("c:\folderA\folderB\*".$s_Date."*".$s_Shift."*".$s_Name."*.*") as  $FileName) 
{ 
    echo basename($FileName); 
    echo"<a href=?myad=".basename($FileName)."/>Download</a>"."<br />"; 
} 

這將返回文件的列表中,但選擇超鏈接不提示下載。

如何獲得超級鏈接來強制內容類型的msexcel?

回答

5

假設你正在使用PHP腳本來實現文件conent,腳本需要設置Content-Type頭:

<? 
    header('Content-Type: application/excel'); 
    header('Content-Disposition: attachment;filename=myfile.xls'); 
    // send file content 
?> 

注意你也可以設置爲使用使用Content-Disposition頭文件的名稱。

您也可能要考慮一個更良好的<a>標籤指向您的下載腳本:

echo '<a href="dl.php?myad=' .urlencode(basename($FileName)). '">Download</a><br />'; 

在這個例子中,你需要用實際的腳本來代替​​。

1

還追加Content-Length頭:

header('Content-Length : ' . filesize('myfile.xls'));

客戶想知道文件有多大,怎樣的量有多大已經下載。