/** * Compress images * * @param boolean $arrFiles File array */ public function processPostUpload($arrFiles) { if (is_array($arrFiles) && $GLOBALS['TL_CONFIG']['tinypng_api_key'] != '') { $strUrl = 'https://api.tinypng.com/shrink'; $strKey = $GLOBALS['TL_CONFIG']['tinypng_api_key']; $strAuthorization = 'Basic ' . base64_encode("api:{$strKey}"); foreach ($arrFiles as $file) { $objFile = FilesModel::findByPath($file); if (in_array($objFile->extension, array('png', 'jpg', 'jpeg'))) { $strFile = TL_ROOT . '/' . $file; $objRequest = new Request(); $objRequest->method = 'post'; $objRequest->data = file_get_contents($strFile); $objRequest->setHeader('Content-type', 'image/png'); $objRequest->setHeader('Authorization', $strAuthorization); $objRequest->send($strUrl); $arrResponse = json_decode($objRequest->response); if ($objRequest->code == 201) { file_put_contents($strFile, fopen($arrResponse->output->url, "rb", false)); $objFile->tstamp = time(); $objFile->path = $file; $objFile->hash = md5_file(TL_ROOT . '/' . $file); $objFile->save(); System::log('Compression was successful. (File: ' . $file . ')', __METHOD__, TL_FILES); } else { System::log('Compression failed. (' . $arrResponse->message . ') (File: ' . $file . ')', __METHOD__, TL_FILES); } } } } }