2016-01-23 103 views
1

我正在嘗試爲下載文件創建臨時下載鏈接。 我的代碼是:在PHP中下載文件

$file_temp_adrs = "temp/".md5(microtime()); 
mkdir($file_temp_adrs); 
$file_temp_adr = $file_temp_adrs."/".$fileinfo['org_filename']; 
$file_org_adr = "files/".$fileinfo['filename']; 
copy($file_org_adr , $file_temp_adr); 

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mime_type = finfo_file($finfo, $file_temp_adr); 
finfo_close($finfo); 
$name = basename($file_temp_adr); 
$size = filesize($file_temp_adr); 


header("Content-Disposition: attachment; filename=\"".$name."\""); 
header("Content-Type: $mime_type"); 
header("Content-Length: $size"); 
header("Connection: close"); 

當我下載按鈕點擊,瀏覽器會保存與真實姓名或延長,但文件大小的文件是0KB是不可用的。 哪裏錯了?

+0

你是什麼內容的長度? ($ size) – Alexei

+1

在關閉連接之前,您需要將文件流式傳輸給用戶。嘗試使用'fpassthru'。 –

+0

@Alexei它取決於文件。 –

回答

0

我想你實際上並沒有提供該文件的內容,你應該使用輸出的readfile文件內容:

readfile($file_temp_adr); 
+0

謝謝!有用 :) –