2016-01-23 104 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

谢谢!有用 :) –