Вход Регистрация
Файл: modules/obmen/scr_file.php
Строк: 73
<?php

/* DCMS S (Special)
 * Версия файла 0.0.1
 * Дата последнего редактирования 14.11.2015
 * Модифицировал densnet
 */

require_once '../../sys/inc/start.php';
require_once 
H . 'sys/inc/sess.php';
require_once 
H . 'sys/inc/settings.php';
require_once 
H . 'sys/inc/db_connect.php';
require_once 
H . 'sys/inc/ipua.php';
require_once 
H . 'sys/inc/fnc.php';
require_once 
H . 'sys/inc/loads.php'; #все необходимые функции для работы загруз-центра
require_once H . 'sys/inc/user.php';

define('LS', realpath(H . 'sys/obmen/screens/')); #путь до папки со скриншотами

if (isset($_GET['w'])) {
    
define('SCR_WIDTH', max(64, min(1024, intval($_GET['w'])))); #максимальная ширина скриншотов
} else {
    
define('SCR_WIDTH', IS_WEB ? $set['loads_screen_size_web'] : $set['loads_screen_size_wap']);
}

if (!isset(
$_GET['id'])) {
    exit;
}
if (!isset(
$_GET['ras'])) {
    exit;
}

switch (
$_GET['ras']) {
    case 
'GIF':define('LF_RAS', 'gif');
        break;
    case 
'JPG':define('LF_RAS', 'jpg');
        break;
    case 
'JPEG':define('LF_RAS', 'jpeg');
        break;
    case 
'PNG':define('LF_RAS', 'png');
        break;
    default:exit;
}

$file['id'] = (int) $_GET['id'];
if (!
is_file(H . "sys/obmen/files/$file[id].dat" . '.' . strtoupper(LF_RAS))) {
    exit;
}

define('LF_PATH', H . "sys/obmen/files/$file[id].dat" . '.' . strtoupper(LF_RAS));
define('LF_SIZE', filesize(H . "sys/obmen/files/$file[id].dat" . '.' . strtoupper(LF_RAS)));
define('LF_TIME', filectime(H . "sys/obmen/files/$file[id].dat" . '.' . strtoupper(LF_RAS)));
define('LF_NAME', $file['id']);
define('SCR_FILE', LS . '/width-' . SCR_WIDTH . '_name-' . LF_NAME . '_size-' . LF_SIZE . '.' . LF_RAS);

header("Last-Modified: " . gmdate("D, d M Y H:i:s", LF_TIME) . " GMT");
header("Expires: " . gmdate("D, d M Y H:i:s", $time + 3600) . " GMT");
header('Content-type: image/' . LF_RAS);
header('Content-Disposition: filename=' . $file['id'] . '.' . LF_RAS);

#чтобы не ресайзить каждый раз
if (file_exists(SCR_FILE) && filesize(SCR_FILE)) {
    
header('Content-length: ' . filesize(SCR_FILE));
    echo 
file_get_contents(SCR_FILE);
    exit;
}

switch (
LF_RAS) {
    case 
'jpg':
        
$img = @imagecreatefromjpeg(LF_PATH);
        break;
    case 
'jpeg':
        
$img = @imagecreatefromjpeg(LF_PATH);
        break;
    case 
'gif':
        
$img = @imagecreatefromgif(LF_PATH);
        break;
    case 
'png':
        
$img = @imagecreatefrompng(LF_PATH);
        break;
}

$img_x = imagesx($img);
$img_y = imagesy($img);
$x_ratio = SCR_WIDTH / $img_x;

if (
$img_x <= SCR_WIDTH) {
    
$dstW = $img_x;
    
$dstH = $img_y;
} else {
    
$dstH = ceil($x_ratio * $img_y);
    
$dstW = SCR_WIDTH;
}

$screen = ImageCreateTrueColor($dstW, $dstH);

imagecopyresampled($screen, $img, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
imagedestroy($img);

$screen = img_copyright($screen); // наложение копирайта

switch (LF_RAS) {
    case 
'jpg':
        @
ImageJpeg($screen, SCR_FILE, 100);
        break;
    case 
'jpeg':
        @
ImageJpeg($screen, SCR_FILE, 100);
        break;
    case 
'gif':
        @
ImageGif($screen, SCR_FILE);
        break;
    case 
'png':
        @
ImagePng($screen, SCR_FILE);
        break;
}
chmod(SCR_FILE, 0777);
echo 
file_get_contents(SCR_FILE);
exit;
Онлайн: 2
Реклама