$theme_name = rad_themer::getCurrentTheme(); $originalFile = rad_themer::getFilePath($theme_name, 'img', $module, $filename); if (!$originalFile) { errorMsg("File does not exist!"); } $resizedFile = $config['rootPath'] . 'cache' . DS . 'img' . DS . $theme_name . DS . $module . DS . $preset . DS . $filename; $resizedPath = dirname($resizedFile); if (!recursive_mkdir($resizedPath, 0777)) { errorMsg("Can not create dir! Path: {$resizedPath}"); } if (!file_exists($resizedFile) || time() - filemtime($resizedFile) >= (int) $config['cache.power.time']) { $img = new rad_gd_image(); if ($img->set($originalFile, $resizedFile, $preset)) { $r = $img->resize(); if (!$r) { errorMsg($img->getError()); } } else { errorMsg($img->getError()); } } switch (rad_gd_image::getFileExtension($resizedFile)) { case 'jpg': case 'jpeg': case 'jpe': header('Content-type: image/jpeg'); break; case 'png': header('Content-type: image/png'); break; case 'gif':
function getRemoteImg() { $url = $this->request('url'); $url = urldecode($url); $filename = md5($url . mktime(0, 0, 0, date("n"), date("j"), date("Y"))); $fileadr = SMARTYCACHEPATH . $filename; $root_path = rad_config::getParam('rootPath'); $theme_name = rad_config::getParam('theme.default'); if (empty($theme_name)) { $theme_name = 'default'; } $msg = ''; if ($url and strpos($url, "http") === 0) { $opts = array('http' => array('method' => "GET", 'max_redirects' => 5, 'timeout' => 5, 'ignore_errors' => false)); $context = stream_context_create($opts); $i = 3; $fileData = NULL; //try to recieve image file data 3 times with timeout 5 seconds do { $header = get_headers($url, 1); if (isset($header['Content-Length'])) { $contentLength = (int) $header['Content-Length']; $maxPost = (int) $this->configSys('max_post'); if ($contentLength <= $maxPost) { if (!file_exists($fileadr)) { $fileData = @file_get_contents($url, false, $context); if ($fileData) { $i = 0; } else { $i--; } } else { $fileExt = $this->_getImageExtension($fileadr); if ($fileExt) { die(json_encode(array('is_success' => true, 'theme' => $theme_name, 'origname' => $filename, 'filename' => $filename . '.' . $fileExt))); } else { unlink($fileadr); $i--; } } } else { $i = 0; $msg = $this->lang('imagesizetoobig.catalog.error'); } } } while ($i > 0); if ($fileData) { // if file data recieved, put it on the server into temp folder $hFile = fopen($fileadr, 'w'); if ($hFile) { fputs($hFile, $fileData); flush(); fclose($hFile); $fileExt = $this->_getImageExtension($fileadr); if ($fileExt) { $resizedFile = $root_path . 'cache' . DS . 'img' . DS . $theme_name . DS . 'corecatalog' . DS . 'product_thumb' . DS . $filename . '.' . $fileExt; $resizedPath = dirname($resizedFile); if (recursive_mkdir($resizedPath, 0777)) { $gdImg = new rad_gd_image(); if ($gdImg->set($fileadr, $resizedFile, 'product_thumb')) { $r = $gdImg->resize(); if ($r) { die(json_encode(array('is_success' => true, 'theme' => $theme_name, 'origname' => $filename, 'filename' => $filename . '.' . $fileExt))); } else { unlink($fileadr); $msg = $gdImg->getError(); } } else { unlink($fileadr); $msg = $gdImg->getError(); } } else { unlink($fileadr); $msg = "Can not create dir! Path: {$resizedPath}"; } } else { unlink($fileadr); $msg = $this->lang('wrongfiledata.catalog.error'); } } else { $msg = $this->lang('cannotcreatefile.catalog.error'); } } } else { $msg = $this->lang('wrongimageurl.catalog.error'); } die(json_encode(array('is_success' => false, 'msg' => $msg))); }