2011-06-01 83 views
0

我做了一個簡單的小的PHP代碼,讓我強迫用戶下載從我的網站的視頻,而不是打在瀏覽器PHP腳本,以無法下載

<?php 

$path = $_GET['path']; 
header('Content-Disposition: attachment; filename=' . basename($path)); 
readfile($path); 

?> 

自從我搬到我的網站到新的服務器,似乎有一個權限問題,我得到一個403禁止「您無權訪問此服務器上的/download-stream.php。」

php文件被設置爲與之前相同的權限(644)。我不知道爲什麼現在這樣做。

+0

Apache配置(httpd.conf)導致權限問題。嘗試上傳hello世界腳本,它工作嗎? – 2011-06-01 04:11:12

+0

根文件夾的權限是什麼? – amolv 2011-06-01 04:14:02

+3

我希望你已經簡化了我們的利益,因爲那是一些極其可利用的代碼...... – Darien 2011-06-01 04:40:39

回答

0

嘗試這樣:

<?php 
header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"$path\"\n"); 
$fp=fopen("$path", "r"); 
fpassthru($fp); 

>

1

我一般使用這樣的強制下載?請記住,如果更改正在下載的文件的類型,請更改MIME類型。

 $attachment_location = $_SERVER["DOCUMENT_ROOT"] . "/file.zip"; 
     if (file_exists($attachment_location)) { 

      header($_SERVER["SERVER_PROTOCOL"] . " 200 OK"); 
      header("Cache-Control: public"); // needed for i.e. 
      header("Content-Type: application/zip"); 
      header("Content-Transfer-Encoding: Binary"); 
      header("Content-Length:".filesize($attachment_location)); 
      header("Content-Disposition: attachment; filename=file.zip"); 
      readfile($attachment_location); 
      die();   
     } else { 
      die("Error: File not found."); 
     }