<?php
/**
 * 图像查看
 *
 * @version        $Id: pic_view.php 1 15:26 2010年7月20日Z tianya $
 * @package        DedeBIZ.Administrator
 * @copyright      Copyright (c) 2022, DedeBIZ.COM
 * @license        https://www.dedebiz.com/license
 * @link           https://www.dedebiz.com
 */
require_once(dirname(__FILE__)."/config.php");
CheckPurview('pic_view');
if (empty($activepath)) $activepath = $cfg_medias_dir;

$activepath = preg_replace("#\/{1,}#", "/", $activepath);
$activepath = RemoveXSS($activepath);
$truePath = $cfg_basedir.$activepath;
$listSize = 5;
include DedeInclude('templets/pic_view.htm');

function GetPrePath($nowPath)
{
    if ($nowPath == "" || $nowPath == "/") {
        echo ("当前为根目录\n");
    } else {
        $dirs = split("/", $nowPath);
        $nowPath = "";
        for ($i = 1; $i < count($dirs) - 1; $i++) {
            $nowPath .= "/".$dirs[$i];
        }
        echo ("<a href=\"pic_view.php?activepath=".$nowPath."\">转到上级目录</a>\n");
    }
}

function ListPic($truePath, $nowPath)
{
    global $listSize;
    $col = 0;
    $rowdd = 0;
    $rowdd++;
    $imgfile = "";
    $truePath = preg_replace("#\/$#", "", preg_replace("#\\\\{1,}#", "/", trim($truePath)));
    $nowPath = preg_replace("#\/$#", "", preg_replace("#\/{1,}#", "/", trim($nowPath)));
    $dh = dir($truePath);
    echo ("<tr align='center'>\n");
    while ($filename = $dh->read()) {
        if (!preg_match("#\.$#", $filename)) {
            $fullName = $truePath."/".$filename;
            $fileUrl =  $nowPath."/".$filename;
            if (is_dir($fullName)) {
                if ($col % $listSize == 0 && $col != 0) {
                    echo ("</tr>\n<tr align='center'>\n");
                    for ($i = $rowdd - $listSize; $i < $rowdd; $i++) {
                        echo ("<td>".$filelist[$i]."</td>\n");
                    }
                    echo ("</tr>\n<tr align='center'>\n");
                }
                $line = "
                    <td>
                    <table width='106' height='106' border='0' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC'>
                    <tr><td align='center' bgcolor='#FFFFFF'>
                    <a href='pic_view.php?activepath=".$fileUrl."'>
                    <img src='images/pic_dir.gif' width='44' height='42' border='0'>
                    </a></td></tr></table></td>";
                $filelist[$rowdd] = $filename;
                $col++;
                $rowdd++;
                echo $line;
            } else if (IsImg($filename)) {
                if ($col % $listSize == 0 && $col != 0) {
                    echo ("</tr>\n<tr align='center'>\n");
                    for ($i = $rowdd - $listSize; $i < $rowdd; $i++) {
                        echo ("<td>".$filelist[$i]."</td>\n");
                    }
                    echo ("</tr>\n<tr align='center'>\n");
                }
                $line = "
                    <td>
                    <table width='106' height='106' border='0' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC'>
                    <tr>
                    <td align='center' bgcolor='#FFFFFF'>
                    ".GetImgFile($truePath, $nowPath, $filename)."
                    </td>
                    </tr></table></td>";
                $filelist[$rowdd] = $filename;
                $col++;
                $rowdd++;
                echo $line;
            }
        }
    }
    echo ("</tr>\n");
    if (!empty($filelist)) {
        echo ("<tr align='center'>\n");
        $t = ($rowdd - 1) % $listSize;
        if ($t == 0) {
            $t = $listSize;
        }
        for ($i = $rowdd - $t; $i < $rowdd; $i++) {
            echo ("<td>".$filelist[$i]."</td>\n");
        }
        echo ("</tr>\n");
    }
}

function GetImgFile($truePath, $nowPath, $fileName)
{
    $toW = 102;
    $toH = 102;
    $srcFile = $truePath."/".$fileName;
    $info = "";
    $data = GetImageSize($srcFile, $info);
    $srcW = $data[0];
    $srcH = $data[1];
    if ($toW >= $srcW && $toH >= $srcH) {
        $ftoW = $srcW;
        $ftoH = $srcH;
    } else {
        $toWH = $toW / $toH;
        $srcWH = $srcW / $srcH;
        if ($toWH <= $srcWH) {
            $ftoW = $toW;
            $ftoH = $ftoW * ($srcH / $srcW);
        } else {
            $ftoH = $toH;
            $ftoW = $ftoH * ($srcW / $srcH);
        }
    }
    return ("<a href='".$nowPath."/".$fileName."' target='_blank'><img src='".$nowPath."/".$fileName."' width='".$ftoW."' height='".$ftoH."' border='0'></a>");
}

function IsImg($fileName)
{
    if (preg_match("#\.(jpg|gif|png)$#", $fileName)) return 1;
    else return 0;
}