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

Размер файла: 1.94Kb
  1. <?php
  2. // error_reporting(0); // это надо убрать и исправить ошибки!
  3. require '../system/inc/core.php';
  4. $inp = 'files/' . $_GET['file'] . ''; //Путь к файлу
  5. if((strpos($_GET['file'], "..")!==FALSE) | !$_GET['file']){
  6. header("HTTP/1.0 404 Not Found");
  7. header("Status: 404 Not Found");
  8. $inp = "img/700.png"; //Путь к файлу, который будет выведен, если изображения не существует
  9. }
  10. if(!file_exists($inp)|is_dir($inp)){
  11. header("HTTP/1.0 404 Not Found");
  12. header("Status: 404 Not Found");
  13. $inp = "img/700.png"; //Путь к файлу, который будет выведен, если изображения не существует
  14. }
  15. $wid = 100; //Размер превью в пикселах
  16. $path_info = pathinfo($inp);
  17. if (strtolower($path_info[extension]) == 'jpg' | strtolower($path_info[extension]) == 'jpeg') {
  18. $res = imagecreatefromjpeg($inp);
  19. } else {
  20. if (strtolower($path_info[extension]) == 'png') {
  21. $res = imagecreatefrompng($inp);
  22. } else {
  23. if (strtolower($path_info[extension]) == 'gif') {
  24. $res = imagecreatefromgif($inp);
  25. } else {
  26. header("HTTP/1.0 404 Not Found");
  27. header("Status: 404 Not Found");
  28. $inp = "img/700.png";
  29. $res = imagecreatefromjpeg($inp);
  30. }
  31. }
  32. }
  33. $prop = getimagesize($inp);
  34. $newWidth = $wid;
  35. $newHeight = $prop[1]*($wid/$prop[0]);
  36. $tmp = imagecreatetruecolor($newWidth,$newWidth);
  37. imagealphablending($tmp, false);
  38. imagesavealpha($tmp, true);
  39. imagefill($tmp, 0, 0, IMG_COLOR_TRANSPARENT);
  40. if ($newWidth > $newHeight) {
  41. imagecopyresampled($tmp, $res, -($newWidth - $newHeight), 0, 0, 0, $newWidth + 2 * ($newWidth - $newHeight), $newHeight + ($newWidth - $newHeight), $prop[0], $prop[1]);
  42. } else {
  43. imagecopyresampled($tmp, $res, 0, ($newWidth - $newHeight) / 2, 0, 0, $newWidth, $newHeight, $prop[0], $prop[1]);
  44. }
  45. header('Content-Type: image/png');
  46. imagepng($tmp);
  47. imagedestroy($tmp);