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

Спасибо! Оно работает :) –