2014-01-27 85 views
1

我有我的MySQL數據庫上的文件,我想創建一個鏈接(爲我的變量$文件)下載這些文件。鏈接變量與PHP下載我的MySQL數據庫上的鏈接

$reponse = $bdd->query("SELECT name, filename, filepath FROM documents"); 
while ($donnees = $reponse->fetch()) 
{ 
    $files=$donnees['filename']; 

    // [Doing some work here...] 

    if (preg_match($word,$line)) { 
     echo "<center>Word ".$word." found in the file ".$files."</center>";  
    } 
} 
+1

我知道法國人p人們對他們的語言感到非常自豪,但如果您要求幫助,請拜託,真的請...使用英語,特別是在代碼中。 –

+0

我不以我的語言爲榮:P我編輯了我的代碼,對於這個錯誤感到抱歉。 – user3239930

回答

0

如果你的文件路徑是本地路徑(如/var/www/uploads/myfile.txt),你需要做一個新的PHP頁面,允許用戶下載文件。因此,有兩個步驟:

  1. 寫的下載網址在當前的環
  2. 下載創建一個新的頁面

你的循環修改:

$reponse = $bdd->query("SELECT name, filename, filepath FROM documents"); 
while ($donnees = $reponse->fetch()) 
{ 
$files=$donnees['filename']; 
// ... stuff here ... 
if (preg_match($word,$line)) { 

    echo "<center>Word ".$word." found in the file <a href=\"download.php?file=".$filepath."\">".$files."</a></center>"; 

} 

在的download.php :

<?php 
$file=$_GET['file']; 

if (($file != "") && (file_exists("./" . basename($file)))) // add some checks to avoid the download of critical files... 
{ 
    $size = filesize("./" . basename($file)); 
    header("Content-Type: application/force-download; name=\"" . basename($file) . "\""); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: $size"); 
    header("Content-Disposition: attachment; filename=\"" . basename($file) . "\""); 
    readfile("./" . basename($file)); 
    exit(); 
} 
?> 
+0

謝謝你的幫助,它的工作! – user3239930