2015-04-23 2 views
1

Я написал код для скачивания файла. с этим кодом я загружаю файл, но когда я открываю файл, я не вижу никаких данных. Ниже приведен код, который я использую.не удалось просмотреть данные из загруженного файла с помощью PHP

<?php 
$namekey = $_REQUEST['key']; 

$tmp = explode(".",$file['namekey']); 
switch ($tmp[count($tmp)-1]) { 
    case "pdf": $ctype="application/pdf"; break; 
    case "exe": $ctype="application/octet-stream"; break; 
    case "zip": $ctype="application/zip"; break; 
    case "docx": 
    case "doc": $ctype="application/msword"; break; 
    case "csv": 
    case "xls": 
    case "xlsx": $ctype="application/vnd.ms-excel"; break; 
    case "ppt": $ctype="application/vnd.ms-powerpoint"; break; 
    case "gif": $ctype="image/gif"; break; 
    case "png": $ctype="image/png"; break; 
    case "jpeg": 
    case "jpg": $ctype="image/jpg"; break; 
    case "tif": 
    case "tiff": $ctype="image/tiff"; break; 
    case "psd": $ctype="image/psd"; break; 
    case "bmp": $ctype="image/bmp"; break; 
    case "ico": $ctype="image/vnd.microsoft.icon"; break; 
    default: $ctype="application/force-download"; 
} 
$location="uploads/sop/".$namekey.""; 
$fszie=filesize($location); 
header("Pragma: public"); // required 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: private",false); // required for certain browsers 
header("Content-Type: $ctype"); 
header("Content-Disposition: attachment; filename=\"".$namekey."\";"); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: ".$fsize); 
ob_clean(); 
flush(); 
//readfile('uploads/sop/'.$file['namekey']); 
readfile($location); 

?> 

Есть ошибки в коде. Любая помощь будет принята с благодарностью!

Заранее благодарен!

ответ

0

Не уверен, что именно в чем причина .... Но, после удаления код ниже его хорошо работает ...

header("Content-Length: ".$fsize); 

Благодарности

0

Заканчивать первые две строки кода:

<?php 
$namekey = $_REQUEST['key']; 

$tmp = explode(".",$file['namekey']); 

Здесь $ файл [ 'namekey'] будет определено, вы должны использовать $ namekey:

<?php 
$namekey = $_REQUEST['key']; 

$tmp = explode(".",$namekey); 
+0

Спасибо за ответ .. Хотя я и изменил, это не работает. –

+0

Ну, вы можете прокомментировать заголовки: Content-Type, Content-Disposition, Content-Transfer-Encoding и Content-Length и попробовать так что вы можете увидеть любые возникшие ошибки –

+0

попробовал все перестановки и комбинации с заголовком ... все же данные не видны .... –