Просмотр файла mail/preview.php

Размер файла: 1.94Kb
<?php
// error_reporting(0); // это надо убрать и исправить ошибки!
require '../system/inc/core.php';
$inp = 'files/' . $_GET['file'] . '';  //Путь к файлу
if((strpos($_GET['file'], "..")!==FALSE) | !$_GET['file']){
	header("HTTP/1.0 404 Not Found");
	header("Status: 404 Not Found");
	$inp = "img/700.png"; //Путь к файлу, который будет выведен, если изображения не существует
}
if(!file_exists($inp)|is_dir($inp)){
	header("HTTP/1.0 404 Not Found");
	header("Status: 404 Not Found");
	$inp = "img/700.png"; //Путь к файлу, который будет выведен, если изображения не существует
}
$wid = 100; //Размер превью в пикселах
$path_info = pathinfo($inp);
if (strtolower($path_info[extension]) == 'jpg' | strtolower($path_info[extension]) == 'jpeg') {
	$res = imagecreatefromjpeg($inp);
} else {
	if (strtolower($path_info[extension]) == 'png') {
		$res = imagecreatefrompng($inp);
	} else {
		if (strtolower($path_info[extension]) == 'gif') {
			$res = imagecreatefromgif($inp);
		} else {
			header("HTTP/1.0 404 Not Found");
			header("Status: 404 Not Found");
			$inp = "img/700.png";
			$res = imagecreatefromjpeg($inp);
		}
	}
}
$prop = getimagesize($inp);
$newWidth = $wid;
$newHeight = $prop[1]*($wid/$prop[0]);
$tmp = imagecreatetruecolor($newWidth,$newWidth);
imagealphablending($tmp, false);
imagesavealpha($tmp, true);
imagefill($tmp, 0, 0, IMG_COLOR_TRANSPARENT);
if ($newWidth > $newHeight) {
	imagecopyresampled($tmp, $res, -($newWidth - $newHeight), 0, 0, 0, $newWidth + 2 * ($newWidth - $newHeight), $newHeight + ($newWidth - $newHeight), $prop[0], $prop[1]);
} else {
	imagecopyresampled($tmp, $res, 0, ($newWidth - $newHeight) / 2, 0, 0, $newWidth, $newHeight, $prop[0], $prop[1]);
}
header('Content-Type: image/png');
imagepng($tmp);
imagedestroy($tmp);