/* PARAMETERS: SHOW - image (show image) - file (download file) - preview (image preview) FILE - file id */ include dirname(__FILE__)."/admin/inc/settings.php"; if (file_exists(dirname(__FILE__)."/admin/inc/settings.preview.php")) { include dirname(__FILE__)."/admin/inc/settings.preview.php"; } //Header("Pragma: no-cache"); //Header("Cache-Control: no-cache"); //Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT"); //error_reporting(0); // IMAGE CACHE $IMAGE_CACHE = true; if ($IMAGE_CACHE && $show != "preview") { if (file_exists(PREVIEW_CACHE_DIR)) { $file_cache = dirname(__FILE__)."/".PREVIEW_CACHE_DIR."/{$HTTP_GET_VARS["id"]}_{$HTTP_GET_VARS["w"]}-{$HTTP_GET_VARS["h"]}".(isset($HTTP_GET_VARS["border"])?"-{$HTTP_GET_VARS["border"]}":""); if (file_exists($file_cache)) { $f = fopen($file_cache, "rb"); echo fread($f, filesize($file_cache)); fclose($f); die(); } } else { $IMAGE_CACHE = false; } } if ($show=="") {$show = "image";} //initialize file data $db->DBConnect(); $get = $db->DBExec("SELECT * FROM files WHERE file_id = '".$id."'"); if ($db->DBNumRows($get) > 0) { $data = $db->DB2Array($get, 0); $file_id = $id; $file = $data["file_name"]; $file_preview = dirname(__FILE__)."/".WSWG_FILE_ROOT."/".$file_id; $file_url = WSWG_FILE_ROOT."/".$file_id; $file_desc = $data["file_desc"]; } else { $file_id = $id; $file = $id; if ($fl_path[$dir] == "") {$fl_path[$dir] = $dir;} $file_preview = /*dirname(__FILE__)."/".*/WSWG_FILE_ROOT."/".$file; $file_url = WSWG_FILE_ROOT."/".$file_id; if (!file_exists($file_preview)) {die();} } if ($show != "preview") { // check file existence if (file_exists($file_preview) && $file!="") { // check file type $file_type = @getimagesize($file_preview); if (!$file_type) { $file_type = 99; } else { $file_type = $file_type[2]; } switch ($file_type) { case 1: $format = "gif"; break; case 2: $format = "jpeg"; break; case 3: $format = "png"; break; case 4: $format = "swf"; break; case 13: $format = "swc"; break; default: $format = ""; break; } if ($format == "gif" && !function_exists("imagegif")) { $format = "png"; $format_from = "gif"; } if ($format == "") { $show = "file"; } if ($file_type >= 1 && $file_type <= 3) { // create header Header("Content-type: image/".$format."; name=\"".$file."\""); Header("Content-Disposition: inline; filename=\"".$file."\""); // create image switch ($format) { case "gif" : $image = ImageCreateFromGIF($file_preview); break; case "jpeg" : $image = ImageCreateFromJPEG($file_preview); break; case "png" : $image = ($format_from == "gif" ? ImageCreateFromGIF($file_preview) : ImageCreateFromPNG($file_preview)); break; } // resize image if (!isset($w) && !isset($h)) { $w = (ImageSX($image) > 800 ? 800 : ImageSX($image)); $h = round($w * ImageSY($image) / ImageSX($image)); if ($h > 800) {$h = 800; $w = round($h * ImageSX($image) / ImageSY($image)); } } if (!isset($w) && ImageSX($image) > 800) {$w = 800;} if (!isset($w) && ImageSX($image) > 800 || !isset($h) && ImageSY($image) > 800) { if ((ImageSX($image)/ImageSY($image)) != ($w/$h)) {$h = round($w * ImageSY($image) / ImageSX($image));} } if (!isset($h) && ImageSY($image) > 800) {$h = 800;} if (!isset($w) && ImageSX($image) > 800 || !isset($h) && ImageSY($image) > 800) { if ((ImageSX($image)/ImageSY($image)) != ($w/$h)) {$h = round($w * ImageSY($image) / ImageSX($image));} } $_w = ImageSX($image); $_h = ImageSY($image); if (!isset($w) && !isset($h)) {$w=ImageSX($image);$h=ImageSY($image);} if (!isset($w) && isset($h)) {$w = round($_w * $h / $_h);} if (!isset($h) && isset($w)) {$h = round($_h * $w / $_w);} $__w = round($_w * $h / $_h); $__h = round($_h * $w / $_w); if ($w>$__w) {$__w = $w;} if ($h>$__h) {$__h = $h;} $im=$image; if ($format=="png") { $im = ImageCreate($w,$h); } else { $im = ImageCreateTrueColor($w,$h); } ImageCopyReSampled($im, $image, round($w/2)-round($__w/2), round($h/2)-round($__h/2), 0, 0 , $__w, $__h, $_w, $_h); ImageInterlace($im,($format=="png"?0:1)); // borders $border_color = (isset($BORDER_COLOR) ? imagecolorallocate($im, $BORDER_COLOR["r"], $BORDER_COLOR["g"], $BORDER_COLOR["b"]) : imagecolorallocate($im, 255, 255, 255) ); if (isset($border)) { switch ($border) { case "rounded" : $x1 = -1; $y1 = -1; $x2 = $__w; $y2 = $__h; $arc = (isset($BORDER_SIZE) ? $BORDER_SIZE : 4); $arc_w = $arc*2; for ($i=0; $i<$arc; $i++) { for ($j=0; $j<$arc; $j++) { ImageArc($im, $x1+$arc-$i, $y1+$arc-$j, $arc_w, $arc_w, 180, 270, $border_color); ImageArc($im, $x2-$arc+$i, $y1+$arc-$j, $arc_w, $arc_w, 270, 360, $border_color); ImageArc($im, $x2-$arc+$i, $y2-$arc+$j, $arc_w, $arc_w, 0, 90, $border_color); ImageArc($im, $x1+$arc-$i, $y2-$arc+$j, $arc_w, $arc_w, 90, 180, $border_color); } } imagecolortransparent($im, $border_color); break; }} // write image output if ($format=="gif" || $format=="png") { ImageColorTransparent($im, ImageColorTransparent($image)); } switch ($format) { case "gif" : if ($IMAGE_CACHE) { ImageGIF($im, PREVIEW_CACHE_DIR."/{$file_id}_{$HTTP_GET_VARS["w"]}-{$HTTP_GET_VARS["h"]}".(isset($HTTP_GET_VARS["border"])?"-{$HTTP_GET_VARS["border"]}":"")); } ImageGIF($im); break; case "jpeg" : if ($IMAGE_CACHE) { ImageJPEG($im, PREVIEW_CACHE_DIR."/{$file_id}_{$HTTP_GET_VARS["w"]}-{$HTTP_GET_VARS["h"]}".(isset($HTTP_GET_VARS["border"])?"-{$HTTP_GET_VARS["border"]}":""), 80); } ImageJPEG($im, "", 80); break; case "png" : if ($IMAGE_CACHE) { ImagePNG($im, PREVIEW_CACHE_DIR."/{$file_id}_{$HTTP_GET_VARS["w"]}-{$HTTP_GET_VARS["h"]}".(isset($HTTP_GET_VARS["border"])?"-{$HTTP_GET_VARS["border"]}":"")); } ImagePNG($im); break; } ImageDestroy($im); } elseif ($show == "file") { // create header Header("Content-Type: application/octet-stream; name=\"".$file."\""); Header("Content-Disposition: attachment; filename=\"".$file."\""); // write file output $fl = fopen ($file_preview, "r"); echo fread ($fl, filesize($file_preview)); fclose($fl); } } else { // get file format (file ext.) $format = ""; $format .= (strtolower(substr($file,-3)) == "gif" ? "gif" : ""); $format .= (strtolower(substr($file,-3)) == "jpg" || strtolower(substr($file,-4)) == "jpeg" ? "jpeg" : ""); $format .= (strtolower(substr($file,-3)) == "png" ? "png" : ""); if ($format != "") { Header("Content-type: image/png"); if (!isset($w) && !isset($h)) {$w=80;$h=80;} if (!isset($w) && isset($h)) {$w = 80;} if (!isset($h) && isset($w)) {$h = 80;} $im = ImageCreate($w,$h); $white = ImageColorAllocate ($im, 255, 255, 255); $black = ImageColorAllocate ($im, 0, 0, 0); ImageString($im, 1, round($w/2)-20, round($h/2)-5, "no image", $black); ImageColorTransparent($im, $white); ImagePNG($im); ImageDestroy($im); } else { include "inc/404.php"; } } } else { $image = getimagesize($file_preview); if ($image[0] > 800) { $image[1] = round(800 * $image[1] / $image[0]); $image[0] = 800; } if ($image[1] > 800) { $image[0] = round(800 * $image[0] / $image[1]); $image[1] = 800; } if (strpos($file_preview, "logo_study.swf") > 0) { $image[0] = 980; $image[1] = 644; $image[2] = 13; $image[3] = ' width="980" height="644" '; } if (($image[2] >= 1 && $image[2] <= 4) || $image[2] == 13) { echo '
![]() '.$file_desc : "").' | |