Преди 1-2 седмици един от колегите тук сподели този код:
Като кода си работи ,и е защитен ,но като сваля файла и реално не мога да го preview с никаква програма,освен photoshop.Явно има някакъв проблем със filetype или и аз не знам,някой може ли да помогне?
Код:
$file_extension = strtolower(substr(strrchr($filename,"."),1));
$path_down = "./imgs/";
if(isSet($_GET['image'])) {
$filename = "{$path_down}{$_GET['image']}";
} else {
$filename = "";
}
if(ini_get('zlib.output_compression')) {ini_set('zlib.output_compression', 'Off'); }
if(empty($filename)) {
header("HTTP/1.0 404 Not Found");
} elseif(!is_file($filename)) {
die("This is not a file!");
} elseif (!file_exists($filename)) {
header("HTTP/1.0 404 Not Found");
} else {
$size = @getimagesize($filename);
$fp = @fopen($filename, "rb");
if ($size && $fp) {
switch($file_extension) {
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: {$ctype}");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
}
}