Example #1
0
 public function getSQLValue($name = '')
 {
     global $PCRE_RES_REF;
     $text = $this->getValue($name);
     if (preg_match_all('/href="' . $PCRE_RES_REF . '\\/[\\S]*\\.(jpg|gif|png)+"/', $text, $matches)) {
         foreach ($matches[0] as $m) {
             $tmp = substr($m, 6, strlen($m) - 7);
             $width = 50;
             $height = 50;
             if (file_exists($_SERVER['DOCUMENT_ROOT'] . $tmp)) {
                 $size = getImagesize($_SERVER['DOCUMENT_ROOT'] . $tmp);
                 $width = $size[0];
                 $height = $size[1];
             }
             $text = str_replace($m, 'href="#" onClick="newWin(\'' . $tmp . '\',' . $width . ',' . $height . '); return false;"', $text);
         }
     }
     if (preg_match_all('/href="' . $PCRE_RES_REF . '\\/[\\S]*\\.(html)"/', $text, $matches)) {
         preg_replace('/onclick=".+; return false;"/', '', $text);
         foreach ($matches[0] as $m) {
             $tmp = substr($m, 6, strlen($m) - 7);
             $width = 640;
             $height = 480;
             $text = str_replace($m, 'href="#" onClick="newWinHtml(\'' . $tmp . '\',' . $width . ',' . $height . '); return false;"', $text);
         }
     }
     return addslashes(str_replace('&', '&', $text));
 }
Example #2
0
 function getImgSize()
 {
     $this->img_info = @getImagesize($this->path);
     $this->w = $this->img_info[0];
     $this->h = $this->img_info[1];
     switch ($this->img_info[2]) {
         case 1:
             $this->t = 'gif';
             break;
         case 2:
             $this->t = 'jpg';
             break;
         case 3:
             $this->t = 'png';
             break;
     }
 }
 /**
  * Uploads the file
  * @access public
  * @params
  * $uploaddir : Directory Name in which uploaded file is placed
  * $name : file input type field name
  * $rename : you may pass string or boolean
     true : rename the file if it already exists and returns the renamed file name.
  *  String : rename the file to given string.
  *  $replace =true : replace the file if it is already existing
  *  $file_max_size : file size in bytes. 0 for default
  *  $check_type : checks file type exp ."(jpg|gif|jpeg)"
  *  Example upload_file("temp","file",true,true,0,"jpg|jpeg|bmp|gif")
  * return : On success it will return file name else return (boolean)false
 */
 public function upload_file($uploaddir, $name, $rename = null, $replace = false, $check_type = "")
 {
     $this->set_file_size($_FILES[$name]['size']);
     $this->error = $_FILES[$name]['error'];
     $this->set_temp_name($_FILES[$name]['tmp_name']);
     $this->set_directory($uploaddir);
     $this->check_for_directory();
     $this->set_file_name($_FILES[$name]['name']);
     $file_size = $this->file_type_info[$check_type]['max_file_size'] / 1000000;
     if ($this->error == 1) {
         $this->error = sprintf(__("Your file is too large for the web server.  The largest file you can upload here is %.1fM.  If this is too small, please ask the administrator to increase the <code>upload_max_filesize</code> directive in <code>php.ini</code>."), floatval(parse_file_size_string(ini_get("upload_max_filesize"))) / 1048576.0);
     } elseif ($this->error == 3) {
         $this->error = __('The uploaded file was only partially uploaded.');
     } elseif ($this->error == 4) {
         $this->error = __('No file was uploaded');
     } elseif (!is_uploaded_file($this->tmp_name)) {
         $this->error = "File " . $this->tmp_name . " is not uploaded correctly.";
     }
     if (empty($this->file_name)) {
         $this->error = "File is not uploaded correctly.";
     }
     if ($this->error != "") {
         return false;
     }
     //check here for valid file
     if (!empty($check_type)) {
         // set max upload size
         if (array_key_exists($check_type, $this->file_type_info)) {
             $this->set_max_size($this->file_type_info[$check_type]['max_file_size']);
         }
         // check file size against maximum
         if ($this->file_size > $this->max_filesize) {
             $this->error = sprintf(__("File too large; %s file uploads are limited to %s.  If this is too small, please ask the administrator to increase the limit."), $check_type, format_file_size($this->max_filesize));
             return false;
         }
         //if $check_type is just image then we can check it via getImagesize() function if the file is valid or not
         // does this check always for image
         if ($check_type == 'image') {
             $sizeCheck = @getImagesize($this->tmp_name);
             if (!$sizeCheck) {
                 $this->error = __("Invalid image file.");
                 return false;
             }
             //additional check to see if the image has any extension
             $ext = explode('.', $this->file_name);
             $ext = strtolower(end($ext));
             $img_mime = explode('/', $sizeCheck['mime']);
             $img_mime = strtolower(end($img_mime));
             //jpeg and jpg may have different extension and mime so handled specially
             if ($ext == 'jpg' || $ext == 'jpeg') {
             } else {
                 if ($ext != $img_mime) {
                     //means there is no image extension so lets add it
                     $this->file_name .= '.' . $img_mime;
                 }
             }
         }
         //check for other media types
         // can be turned of from config.inc define('CHECK_MIME_TYPE',0);
         if ($check_type == 'audio' || $check_type == 'video') {
             if (CHECK_MIME_TYPE == 1) {
                 $mime_type = exec('file -bi ' . $this->tmp_name);
                 // TO DO:: enalbe for audio/video //application/octet-stream
                 if (empty($mime_type)) {
                     $this->error = __("Invalid media file.");
                     return false;
                 }
                 if (strstr($mime_type, $check_type)) {
                 } else {
                     if (strstr($mime_type, 'media')) {
                     } else {
                         if (strstr($mime_type, 'octet-stream')) {
                             // Temporarily added for .wav file -- need to do something else
                         } else {
                             $this->error = __("Invalid media file.");
                             return false;
                         }
                     }
                 }
             }
         }
         //special treatment for doc types
         if ($check_type == 'doc') {
             if (CHECK_MIME_TYPE == 1) {
                 $mime_type = exec('file -bi ' . $this->tmp_name);
                 if (strstr($mime_type, 'msword') || strstr($mime_type, 'pdf')) {
                 } else {
                     $this->error = sprintf(__("Invalid document type - supported formats are: %s"), ".doc, .pdf");
                     return false;
                 }
             }
         }
     }
     //check_type
     if (!is_bool($rename) && !empty($rename)) {
         if (preg_match("/\\..*+\$/", $this->file_name, $matches)) {
             $this->set_file_name($rename . $matches[0]);
         }
     } elseif ($rename && file_exists($this->full_name)) {
         if (preg_match("/\\..*+\$/", $this->file_name, $matches)) {
             $this->set_file_name(substr_replace($this->file_name, "_" . rand(0, rand(0, 99)), -strlen($matches[0]), 0));
         }
     }
     if (file_exists($this->full_name)) {
         if ($replace) {
             @unlink($this->full_name);
         } else {
             $this->error = __("File error: File already exists");
             return false;
         }
     }
     $this->start_upload();
     if ($this->error != "") {
         return false;
     } else {
         return $this->file_name;
     }
 }
 /**
  * [Describe function...]
  *
  * @param 	[type]		$imgConf: ...
  * @return 	[type]		...
  * @todo Define visibility
  */
 public function ext_getTSCE_config_image($imgConf)
 {
     if (substr($imgConf, 0, 4) == 'gfx/') {
         $iFile = $this->ext_localGfxPrefix . $imgConf;
         $tFile = $this->ext_localWebGfxPrefix . $imgConf;
     } elseif (substr($imgConf, 0, 4) == 'EXT:') {
         $iFile = GeneralUtility::getFileAbsFileName($imgConf);
         if ($iFile) {
             $f = \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($iFile);
             $tFile = $GLOBALS['BACK_PATH'] . '../' . $f;
         }
     }
     $imageInfo = @getImagesize($iFile);
     return '<img src="' . $tFile . '" ' . $imageInfo[3] . '>';
 }
         }
     }
 }
 $filename = "{$adminid}_" . MyDate("His", $uptime) . mt_rand(100, 999) . $i;
 $fs = explode(".", ${"upfile" . $i . "_name"});
 $filename = $filename . "." . $fs[count($fs) - 1];
 $filename = $savePath . "/" . $filename;
 if (!is_dir($cfg_basedir . $savePath)) {
     MkdirAll($cfg_basedir . $savePath, 777);
     CloseFtp();
 }
 $fullfilename = $cfg_basedir . $filename;
 if ($mediatype == 1) {
     @move_uploaded_file(${"upfile" . $i}, $fullfilename);
     $info = '';
     $data = getImagesize($fullfilename, $info);
     $width = $data[0];
     $height = $data[1];
     if (in_array($upfile_type, $cfg_photo_typenames)) {
         WaterImg($fullfilename, 'up');
     }
 } else {
     @move_uploaded_file(${"upfile" . $i}, $fullfilename);
 }
 if ($i > 1) {
     $ntitle = $title . "_" . $i;
 } else {
     $ntitle = $title;
 }
 $inquery = "INSERT INTO `#@__uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)\n       VALUES ('{$ntitle}','{$filename}','{$mediatype}','{$width}','{$height}','{$playtime}','{$filesize}','{$uptime}','{$adminid}'); ";
 $okdd++;
 /**
  * @param string $imgConf
  * @return string
  */
 public function ext_getTSCE_config_image($imgConf)
 {
     $iFile = $this->ext_localGfxPrefix . $imgConf;
     $tFile = $this->ext_localWebGfxPrefix . $imgConf;
     $imageInfo = @getImagesize($iFile);
     return '<img src="' . $tFile . '" ' . $imageInfo[3] . '>';
 }
Example #7
0
 /**
  * @access protected
  */
 function _parse($param = '')
 {
     $params = explode(" ", $param);
     $this->filename = urldecode($params[0]);
     if (substr($this->filename, 0, 5) == 'http:' || substr($this->filename, 0, 6) == 'https:') {
         $this->fileIsUrl = true;
         $fd = fopen($this->filename, "r");
         $this->fileIsReadable = $fd !== false ? true : false;
         fclose($fd);
     } else {
         $this->fileIsUrl = false;
         $this->fileIsReadable = is_readable($this->filename);
     }
     if (isset($params[2]) && $params[2] > 0) {
         $this->height = $params[2];
     }
     if (isset($params[1]) && $params[1] > 0) {
         $this->width = $params[1];
     }
     if (isset($params[3]) && $params[3] > 0) {
         $this->positionY = $params[3];
     }
     $_imagesize = getImagesize($this->filename);
     if (is_array($_imagesize)) {
         $this->imageType = $_imagesize[2];
         $this->imageWidth = $_imagesize[0];
         $this->imageHeight = $_imagesize[1];
     }
 }
 /**
  * [Describe function...]
  *
  * @param	[type]		$imgConf: ...
  * @return	[type]		...
  */
 function ext_getTSCE_config_image($imgConf)
 {
     if (substr($imgConf, 0, 4) == 'gfx/') {
         $iFile = $this->ext_localGfxPrefix . $imgConf;
         $tFile = $this->ext_localWebGfxPrefix . $imgConf;
     } elseif (substr($imgConf, 0, 4) == 'EXT:') {
         $iFile = t3lib_div::getFileAbsFileName($imgConf);
         if ($iFile) {
             $f = substr($iFile, strlen(PATH_site));
             $tFile = $GLOBALS['BACK_PATH'] . '../' . $f;
         }
     } else {
         $f = 'uploads/tf/' . $this->extractFromResources($this->setup['resources'], $imgConf);
         $iFile = PATH_site . $f;
         $tFile = $GLOBALS['BACK_PATH'] . '../' . $f;
     }
     $imageInfo = @getImagesize($iFile);
     return '<img src="' . $tFile . '" ' . $imageInfo[3] . '>';
 }
Example #9
0
 /**
  * Determine how to process images
  *
  * Use MIME type of the provided image to detect 
  * which image handling function to use.This 
  * increases the performance as compared to i4
  * image create from string
  *
  * @param string $img the path to image upload  
  * @return array to the specific image-type function to use
 */
 private function getImageFunction($tmp)
 {
     $info = getImagesize($tmp);
     switch ($info['mime']) {
         case 'image/jpeg':
         case 'image/pjpeg':
             return array("imagecreatefromjpeg", 'imagejpg');
             break;
         case 'image/png':
             return array("imagecreatefrompng", "imagepng");
             break;
         case 'image/gif':
             return array("imagecreatefromgif", "imagegif");
             break;
         default:
             return FALSE;
             break;
     }
 }
 /**
  * @param string $imgConf
  * @return string
  */
 public function ext_getTSCE_config_image($imgConf)
 {
     $iFile = null;
     $tFile = null;
     if (substr($imgConf, 0, 4) == 'gfx/') {
         $iFile = $this->ext_localGfxPrefix . $imgConf;
         $tFile = $this->ext_localWebGfxPrefix . $imgConf;
     } elseif (substr($imgConf, 0, 4) == 'EXT:') {
         $iFile = GeneralUtility::getFileAbsFileName($imgConf);
         if ($iFile) {
             $tFile = '../' . PathUtility::stripPathSitePrefix($iFile);
         }
     }
     if ($iFile !== null) {
         $imageInfo = @getImagesize($iFile);
         return '<img src="' . $tFile . '" ' . $imageInfo[3] . '>';
     }
     return '';
 }
 /**
  * Creates and saves a thumbnail picture.
  */
 public function createThumbnail($thumbnailWidth = ATTACHMENT_THUMBNAIL_WIDTH, $thumbnailHeight = ATTACHMENT_THUMBNAIL_HEIGHT, $addSourceInfo = ATTACHMENT_THUMBNAIL_ADD_SOURCE_INFO, $useEmbedded = ATTACHMENT_THUMBNAIL_USE_EMBEDDED)
 {
     // make thumbnail
     $sourceFile = WCF_DIR . 'attachments/attachment-' . $this->attachmentID;
     $targetFile = WCF_DIR . 'attachments/thumbnail-' . $this->attachmentID;
     $thumbnail = new Thumbnail($sourceFile, $thumbnailWidth, $thumbnailHeight, $addSourceInfo, $this->attachmentName, $useEmbedded);
     // get thumbnail
     try {
         if ($thumbnailData = $thumbnail->makeThumbnail()) {
             // save thumbnail
             $file = new File($targetFile);
             $file->write($thumbnailData);
             unset($thumbnailData);
             $file->close();
             // update database entry
             $thumbnailSize = intval(filesize($targetFile));
             list($thumbnailWidth, $thumbnailHeight, ) = @getImagesize($targetFile);
             $sql = "UPDATE\twcf" . WCF_N . "_attachment\n\t\t\t\t\tSET \tthumbnailType = '" . escapeString($thumbnail->getMimeType()) . "',\n\t\t\t\t\t\tthumbnailSize = " . $thumbnailSize . ",\n\t\t\t\t\t\tthumbnailWidth = " . $thumbnailWidth . ",\n\t\t\t\t\t\tthumbnailHeight = " . $thumbnailHeight . "\n\t\t\t\t\tWHERE \tattachmentID = " . $this->attachmentID;
             WCF::getDB()->registerShutdownUpdate($sql);
             // update data
             $this->data['thumbnailType'] = $thumbnail->getMimeType();
             $this->data['thumbnailSize'] = $thumbnailSize;
         }
     } catch (Exception $e) {
     }
 }
Example #12
0
function fb_image()
{
    global $registry;
    $image = last_par_url($registry['fbthumb']);
    $main_img = $_SERVER['DOCUMENT_ROOT'] . '/img/uploads/news/prev/' . $image . '';
    $img = $_SERVER['DOCUMENT_ROOT'] . '/img/uploads/news/fb/' . $image . '';
    if (!file_exists($img)) {
        $info = getImagesize($main_img);
        if ($info['mime'] == 'image/png') {
            resizeImagePng($main_img, 472, 246, $img);
        } else {
            resizeImageJpeg($main_img, 472, 246, $img);
        }
    }
}
 /**
  * Handles a request on the attachment edit form.
  * Deletes old or uploads new attachments.
  */
 public function handleRequest()
 {
     // delete uploaded attachments
     if (isset($_POST['delete']) && is_array($_POST['delete']) && count($_POST['delete'])) {
         // delete selected attachments
         $keys = array_keys($_POST['delete']);
         $this->delete(intval(array_shift($keys)));
     }
     // move uploaded attachments
     if (isset($_POST['attachmentListPositions']) && is_array($_POST['attachmentListPositions'])) {
         $tmpContainerIDArray = count($this->containerIDArray) ? $this->containerIDArray : array(0);
         $positionChanged = false;
         $positions = ArrayUtil::toIntegerArray($_POST['attachmentListPositions']);
         foreach ($positions as $attachmentID => $position) {
             $attachmentID = intval($attachmentID);
             foreach ($tmpContainerIDArray as $containerID) {
                 if (isset($this->attachments[$containerID][$attachmentID]) && $this->attachments[$containerID][$attachmentID]->showOrder != $position) {
                     $this->attachments[$containerID][$attachmentID]->setShowOrder($position);
                     $positionChanged = true;
                 }
             }
         }
         if ($positionChanged) {
             foreach ($tmpContainerIDArray as $containerID) {
                 uasort($this->attachments[$containerID], array('self', 'compareAttachments'));
             }
         }
     }
     // upload new attachments
     $containerID = count($this->containerIDArray) ? reset($this->containerIDArray) : 0;
     if (isset($_FILES) && count($_FILES) && isset($_FILES['upload'])) {
         // upload new attachments
         for ($x = 0, $y = count($_FILES['upload']['name']); $x < $y; $x++) {
             $attachmentData = array();
             $attachmentData['attachmentName'] = $_FILES['upload']['name'][$x];
             if ($attachmentData['attachmentName']) {
                 $tmpFile = $_FILES['upload']['tmp_name'][$x];
                 $attachmentData['attachmentSize'] = $_FILES['upload']['size'][$x];
                 $attachmentData['sha1Hash'] = @sha1_file($tmpFile);
                 $fileExtension = StringUtil::toLowerCase(StringUtil::substring($attachmentData['attachmentName'], StringUtil::lastIndexOf($attachmentData['attachmentName'], '.') + 1));
                 $attachmentData['fileType'] = $_FILES['upload']['type'][$x];
                 $attachmentData['isImage'] = 0;
                 if (strchr($attachmentData['fileType'], 'image')) {
                     // check mime
                     $attachmentData['fileType'] = 'application/octet-stream';
                     if (($imageData = @getImageSize($tmpFile)) !== false) {
                         if (strchr($imageData['mime'], 'image')) {
                             $attachmentData['fileType'] = $imageData['mime'];
                             if ($attachmentData['fileType'] == 'image/bmp') {
                                 $attachmentData['fileType'] = 'image/x-ms-bmp';
                             }
                             $attachmentData['isImage'] = 1;
                         }
                     }
                 }
                 $attachmentData['showOrder'] = (isset($this->attachments[$containerID]) ? count($this->attachments[$containerID]) : 0) + 1;
                 if ($this->checkAttachment($tmpFile, $attachmentData['attachmentName'] . ':' . $attachmentData['sha1Hash'], $attachmentData['attachmentName'], $attachmentData['attachmentSize'], $fileExtension, $attachmentData['isImage'])) {
                     $attachmentData['packageID'] = $this->packageID;
                     $attachmentData['containerID'] = $containerID;
                     $attachmentData['containerType'] = $this->containerType;
                     $attachmentData['idHash'] = $this->idHash;
                     $attachmentData['userID'] = WCF::getUser()->userID;
                     $attachmentData['uploadTime'] = TIME_NOW;
                     $attachmentData['thumbnailType'] = '';
                     $attachmentData['width'] = $attachmentData['height'] = 0;
                     if ($attachmentData['isImage']) {
                         list($width, $height, ) = @getImagesize($tmpFile);
                         $attachmentData['width'] = $width;
                         $attachmentData['height'] = $height;
                     }
                     // save attachment
                     if ($attachment = AttachmentEditor::create($tmpFile, $attachmentData)) {
                         $this->attachmentHashes[count($this->attachmentHashes)] = $attachmentData['attachmentName'] . ':' . $attachmentData['sha1Hash'];
                         $this->attachments[$containerID][$attachment->attachmentID] = $attachment;
                         // save thumbnails
                         if (ATTACHMENT_ENABLE_THUMBNAILS && $attachment->isImage) {
                             $attachment->createThumbnail($this->thumbnailWidth, $this->thumbnailHeight, $this->addSourceInfo, $this->useEmbedded);
                         }
                     }
                 }
             }
         }
     }
     $this->assign();
     if (count($this->errors)) {
         // throw user exception
         throw new UserInputException('attachments', $this->errors);
     }
 }