Beispiel #1
0
 /**
  * Upload a pitch image.
  *
  * @param  array $image
  *
  * @throws Exception
  *
  * @return array
  */
 public function uploadPitchImage($image)
 {
     $app = JFactory::getApplication();
     /** @var $app JApplicationSite */
     $uploadedFile = JArrayHelper::getValue($image, 'tmp_name');
     $uploadedName = JArrayHelper::getValue($image, 'name');
     $errorCode = JArrayHelper::getValue($image, 'error');
     // Load parameters.
     $params = JComponentHelper::getParams($this->option);
     /** @var  $params Joomla\Registry\Registry */
     $destFolder = JPath::clean(JPATH_ROOT . DIRECTORY_SEPARATOR . $params->get("images_directory", "images/crowdfunding"));
     $tmpFolder = $app->get("tmp_path");
     // Joomla! media extension parameters
     $mediaParams = JComponentHelper::getParams("com_media");
     /** @var  $mediaParams Joomla\Registry\Registry */
     jimport("itprism.file");
     jimport("itprism.file.uploader.local");
     jimport("itprism.file.validator.size");
     jimport("itprism.file.validator.image");
     jimport("itprism.file.validator.server");
     $file = new ITPrismFile();
     // Prepare size validator.
     $KB = 1024 * 1024;
     $fileSize = (int) $app->input->server->get('CONTENT_LENGTH');
     $uploadMaxSize = $mediaParams->get("upload_maxsize") * $KB;
     $sizeValidator = new ITPrismFileValidatorSize($fileSize, $uploadMaxSize);
     // Prepare server validator.
     $serverValidator = new ITPrismFileValidatorServer($errorCode, array(UPLOAD_ERR_NO_FILE));
     // Prepare image validator.
     $imageValidator = new ITPrismFileValidatorImage($uploadedFile, $uploadedName);
     // Get allowed mime types from media manager options
     $mimeTypes = explode(",", $mediaParams->get("upload_mime"));
     $imageValidator->setMimeTypes($mimeTypes);
     // Get allowed image extensions from media manager options
     $imageExtensions = explode(",", $mediaParams->get("image_extensions"));
     $imageValidator->setImageExtensions($imageExtensions);
     $file->addValidator($sizeValidator)->addValidator($imageValidator)->addValidator($serverValidator);
     // Validate the file
     if (!$file->isValid()) {
         throw new RuntimeException($file->getError());
     }
     // Generate temporary file name
     $ext = JString::strtolower(JFile::makeSafe(JFile::getExt($image['name'])));
     jimport("itprism.string");
     $generatedName = new ITPrismString();
     $generatedName->generateRandomString(32);
     $tmpDestFile = $tmpFolder . DIRECTORY_SEPARATOR . $generatedName . "." . $ext;
     // Prepare uploader object.
     $uploader = new ITPrismFileUploaderLocal($uploadedFile);
     $uploader->setDestination($tmpDestFile);
     // Upload temporary file
     $file->setUploader($uploader);
     $file->upload();
     // Get file
     $tmpDestFile = $file->getFile();
     if (!is_file($tmpDestFile)) {
         throw new Exception('COM_CROWDFUNDING_ERROR_FILE_CANT_BE_UPLOADED');
     }
     // Resize image
     $image = new JImage();
     $image->loadFile($tmpDestFile);
     if (!$image->isLoaded()) {
         throw new Exception(JText::sprintf('COM_CROWDFUNDING_ERROR_FILE_NOT_FOUND', $tmpDestFile));
     }
     $imageName = $generatedName . "_pimage.png";
     $imageFile = JPath::clean($destFolder . DIRECTORY_SEPARATOR . $imageName);
     // Create main image
     $width = $params->get("pitch_image_width", 600);
     $height = $params->get("pitch_image_height", 400);
     $image->resize($width, $height, false);
     $image->toFile($imageFile, IMAGETYPE_PNG);
     // Remove the temporary
     if (is_file($tmpDestFile)) {
         JFile::delete($tmpDestFile);
     }
     return $imageName;
 }
Beispiel #2
0
 public function uploadExtraImages($files, $options)
 {
     $images = array();
     $destination = JArrayHelper::getValue($options, "destination", "images/crowdfunding");
     jimport("itprism.file");
     jimport("itprism.file.image");
     jimport("itprism.file.uploader.local");
     jimport("itprism.file.validator.size");
     jimport("itprism.file.validator.image");
     jimport("itprism.file.validator.server");
     jimport("itprism.string");
     // Joomla! media extension parameters
     $mediaParams = JComponentHelper::getParams("com_media");
     /** @var  $mediaParams Joomla\Registry\Registry */
     // check for error
     foreach ($files as $image) {
         // Upload image
         if (!empty($image['name'])) {
             $uploadedFile = JArrayHelper::getValue($image, 'tmp_name');
             $uploadedName = JArrayHelper::getValue($image, 'name');
             $errorCode = JArrayHelper::getValue($image, 'error');
             $file = new ITPrismFile();
             // Prepare size validator.
             $KB = 1024 * 1024;
             $fileSize = JArrayHelper::getValue($image, "size");
             $uploadMaxSize = $mediaParams->get("upload_maxsize") * $KB;
             // Prepare file size validator
             $sizeValidator = new ITPrismFileValidatorSize($fileSize, $uploadMaxSize);
             // Prepare server validator.
             $serverValidator = new ITPrismFileValidatorServer($errorCode, array(UPLOAD_ERR_NO_FILE));
             // Prepare image validator.
             $imageValidator = new ITPrismFileValidatorImage($uploadedFile, $uploadedName);
             // Get allowed mime types from media manager options
             $mimeTypes = explode(",", $mediaParams->get("upload_mime"));
             $imageValidator->setMimeTypes($mimeTypes);
             // Get allowed image extensions from media manager options
             $imageExtensions = explode(",", $mediaParams->get("image_extensions"));
             $imageValidator->setImageExtensions($imageExtensions);
             $file->addValidator($sizeValidator)->addValidator($imageValidator)->addValidator($serverValidator);
             // Validate the file
             if (!$file->isValid()) {
                 throw new RuntimeException($file->getError());
             }
             // Generate file name
             $ext = JString::strtolower(JFile::makeSafe(JFile::getExt($image['name'])));
             $generatedName = new ITPrismString();
             $generatedName->generateRandomString(6);
             $tmpDestFile = $destination . DIRECTORY_SEPARATOR . $generatedName . "_extra." . $ext;
             // Prepare uploader object.
             $uploader = new ITPrismFileUploaderLocal($uploadedFile);
             $uploader->setDestination($tmpDestFile);
             // Upload temporary file
             $file->setUploader($uploader);
             $file->upload();
             // Get file
             $imageSource = $file->getFile();
             if (!JFile::exists($imageSource)) {
                 throw new RuntimeException(JText::_("COM_CROWDFUNDING_ERROR_FILE_CANT_BE_UPLOADED"));
             }
             // Create thumbnail
             $fileImage = new ITPrismFileImage($imageSource);
             $options["destination"] = $destination . DIRECTORY_SEPARATOR . $generatedName . "_extra_thumb." . $ext;
             $thumbSource = $fileImage->createThumbnail($options);
             $names = array("image" => "", "thumb" => "");
             $names['image'] = basename($imageSource);
             $names["thumb"] = basename($thumbSource);
             $images[] = $names;
         }
     }
     return $images;
 }
Beispiel #3
0
 /**
  * Upload an image.
  *
  * @param  array $image
  * @param  string $destFolder
  *
  * @throws RuntimeException
  *
  * @return array
  */
 public function uploadImage($image, $destFolder)
 {
     // Load parameters.
     $params = JComponentHelper::getParams($this->option);
     /** @var  $params Joomla\Registry\Registry */
     // Joomla! media extension parameters
     $mediaParams = JComponentHelper::getParams("com_media");
     /** @var  $mediaParams Joomla\Registry\Registry */
     jimport("itprism.file");
     jimport("itprism.file.image");
     jimport("itprism.file.uploader.local");
     jimport("itprism.file.validator.size");
     jimport("itprism.file.validator.image");
     jimport("itprism.file.validator.server");
     $names = array("image" => "", "thumb" => "", "square" => "");
     $KB = 1024 * 1024;
     $uploadMaxSize = $mediaParams->get("upload_maxsize") * $KB;
     $mimeTypes = explode(",", $mediaParams->get("upload_mime"));
     $imageExtensions = explode(",", $mediaParams->get("image_extensions"));
     $uploadedFile = JArrayHelper::getValue($image, 'tmp_name');
     $uploadedName = JString::trim(JArrayHelper::getValue($image, 'name'));
     $errorCode = JArrayHelper::getValue($image, 'error');
     $file = new ITPrismFileImage();
     if (!empty($uploadedName)) {
         // Prepare size validator.
         $fileSize = (int) JArrayHelper::getValue($image, 'size');
         // Prepare file size validator.
         $sizeValidator = new ITPrismFileValidatorSize($fileSize, $uploadMaxSize);
         // Prepare server validator.
         $serverValidator = new ITPrismFileValidatorServer($errorCode, array(UPLOAD_ERR_NO_FILE));
         // Prepare image validator.
         $imageValidator = new ITPrismFileValidatorImage($uploadedFile, $uploadedName);
         // Get allowed mime types from media manager options
         $imageValidator->setMimeTypes($mimeTypes);
         // Get allowed image extensions from media manager options
         $imageValidator->setImageExtensions($imageExtensions);
         $file->addValidator($sizeValidator)->addValidator($imageValidator)->addValidator($serverValidator);
         // Validate the file
         if (!$file->isValid()) {
             throw new RuntimeException($file->getError());
         }
         // Generate temporary file name
         $ext = JString::strtolower(JFile::makeSafe(JFile::getExt($image['name'])));
         jimport("itprism.string");
         $generatedName = new ITPrismString();
         $generatedName->generateRandomString(12, "reward_");
         $destFile = JPath::clean($destFolder . DIRECTORY_SEPARATOR . $generatedName . "." . $ext);
         // Prepare uploader object.
         $uploader = new ITPrismFileUploaderLocal($uploadedFile);
         $uploader->setDestination($destFile);
         // Upload temporary file
         $file->setUploader($uploader);
         $file->upload();
         // Get file
         $imageSource = $file->getFile();
         if (!is_file($imageSource)) {
             throw new RuntimeException(JText::_("COM_CROWDFUNDING_ERROR_FILE_CANT_BE_UPLOADED"));
         }
         // Generate thumbnails.
         // Create thumbnail.
         $generatedName->generateRandomString(12, "reward_thumb_");
         $options = array("width" => $params->get("rewards_image_thumb_width", 200), "height" => $params->get("rewards_image_thumb_height", 200), "destination" => JPath::clean($destFolder . DIRECTORY_SEPARATOR . $generatedName . "." . $ext));
         $thumbSource = $file->createThumbnail($options);
         // Create square image.
         $generatedName->generateRandomString(12, "reward_square_");
         $options = array("width" => $params->get("rewards_image_square_width", 50), "height" => $params->get("rewards_image_square_height", 50), "destination" => JPath::clean($destFolder . DIRECTORY_SEPARATOR . $generatedName . "." . $ext));
         $squareSource = $file->createThumbnail($options);
         $names['image'] = basename($imageSource);
         $names["thumb"] = basename($thumbSource);
         $names["square"] = basename($squareSource);
     }
     return $names;
 }
Beispiel #4
0
 public function realCurrencies()
 {
     JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
     $app = JFactory::getApplication();
     /** @var $app JApplicationAdministrator */
     $data = $this->input->post->get('jform', array(), 'array');
     $file = $this->input->files->get('jform', array(), 'array');
     $data = array_merge($data, $file);
     $redirectOptions = array("view" => "realcurrencies");
     $model = $this->getModel();
     /** @var $model VirtualCurrencyModelImport */
     $form = $model->getForm($data, false);
     /** @var $form JForm * */
     if (!$form) {
         throw new Exception(JText::_("COM_VIRTUALCURRENCY_ERROR_FORM_CANNOT_BE_LOADED"), 500);
     }
     // Validate the form
     $validData = $model->validate($form, $data);
     // Check for errors.
     if ($validData === false) {
         $this->displayNotice($form->getErrors(), $redirectOptions);
         return;
     }
     $fileData = JArrayHelper::getValue($data, "data");
     if (empty($fileData) or empty($fileData["name"])) {
         $this->displayNotice(JText::_('COM_VIRTUALCURRENCY_ERROR_FILE_CANT_BE_UPLOADED'), $redirectOptions);
         return;
     }
     try {
         jimport('joomla.filesystem.archive');
         jimport('itprism.file');
         jimport('itprism.file.uploader.local');
         jimport('itprism.file.validator.size');
         $destination = JPath::clean($app->get("tmp_path")) . DIRECTORY_SEPARATOR . JFile::makeSafe($fileData['name']);
         $file = new ITPrismFile();
         // Prepare size validator.
         $KB = 1024 * 1024;
         $fileSize = (int) $this->input->server->get('CONTENT_LENGTH');
         $mediaParams = JComponentHelper::getParams("com_media");
         /** @var $mediaParams Joomla\Registry\Registry */
         $uploadMaxSize = $mediaParams->get("upload_maxsize") * $KB;
         $sizeValidator = new ITPrismFileValidatorSize($fileSize, $uploadMaxSize);
         $file->addValidator($sizeValidator);
         // Validate the file
         $file->validate();
         // Prepare uploader object.
         $uploader = new ITPrismFileUploaderLocal($fileData);
         $uploader->setDestination($destination);
         // Upload the file
         $file->setUploader($uploader);
         $file->upload();
         $fileName = basename($destination);
         // Extract file if it is archive
         $ext = JString::strtolower(JFile::getExt($fileName));
         if (strcmp($ext, "zip") == 0) {
             $destFolder = JPath::clean($app->get("tmp_path")) . DIRECTORY_SEPARATOR . "currencies";
             if (is_dir($destFolder)) {
                 JFolder::delete($destFolder);
             }
             $filePath = $model->extractFile($destination, $destFolder);
         } else {
             $filePath = $destination;
         }
         $resetId = JArrayHelper::getValue($data, "reset_id", false, "bool");
         $removeOld = JArrayHelper::getValue($data, "remove_old", false, "bool");
         if (!empty($removeOld)) {
             $model->removeAll("currencies");
         }
         $model->importCurrencies($filePath, $resetId);
     } catch (Exception $e) {
         JLog::add($e->getMessage());
         throw new Exception(JText::_('COM_VIRTUALCURRENCY_ERROR_SYSTEM'));
     }
     $this->displayMessage(JText::_('COM_VIRTUALCURRENCY_REAL_CURRENCIES_IMPORTED'), $redirectOptions);
 }
Beispiel #5
0
 /**
  * Upload the file.
  *
  * @param array $tmpFile
  *
  * @throws Exception
  *
  * @return array
  */
 public function uploadFile($tmpFile)
 {
     jimport("joomla.filesystem.folder");
     jimport("joomla.filesystem.file");
     $app = JFactory::getApplication();
     /** @var $app JApplicationSite */
     $uploadedFile = JArrayHelper::getValue($tmpFile, 'tmp_name');
     $uploadedName = JArrayHelper::getValue($tmpFile, 'name');
     $errorCode = JArrayHelper::getValue($tmpFile, 'error');
     // Load parameters.
     $params = JComponentHelper::getParams($this->option);
     /** @var  $params Joomla\Registry\Registry */
     // Generate a folder name.
     jimport("itprism.string");
     $generatedName = new ITPrismString();
     $generatedName->generateRandomString();
     $destFolder = JPath::clean($app->get("tmp_path") . DIRECTORY_SEPARATOR . (string) $generatedName);
     // Create a temporary folder.
     if (!JFolder::create($destFolder)) {
         throw new RuntimeException(JText::_('COM_IDENTITYPROOF_ERROR_FILE_CANT_BE_UPLOADED'));
     }
     // Create .htaccess file to deny the access for that folder.
     $htaccessFile = JPath::clean($destFolder . DIRECTORY_SEPARATOR . ".htaccess");
     $fileContent = "Deny from all";
     if (!JFile::write($htaccessFile, $fileContent)) {
         throw new RuntimeException(JText::_('COM_IDENTITYPROOF_ERROR_FILE_CANT_BE_UPLOADED'));
     }
     jimport("itprism.file");
     jimport("itprism.file.uploader.local");
     jimport("itprism.file.validator.size");
     jimport("itprism.file.validator.type");
     jimport("itprism.file.validator.server");
     $file = new ITPrismFile();
     // Prepare size validator.
     $KB = 1024 * 1024;
     $fileSize = (int) $app->input->server->get('CONTENT_LENGTH');
     $uploadMaxSize = $params->get("max_size") * $KB;
     // Prepare file size validator
     $sizeValidator = new ITPrismFileValidatorSize($fileSize, $uploadMaxSize);
     // Prepare server validator.
     $serverValidator = new ITPrismFileValidatorServer($errorCode, array(UPLOAD_ERR_NO_FILE));
     // Prepare image validator.
     $typeValidator = new ITPrismFileValidatorType($uploadedFile, $uploadedName);
     // Get allowed mime types from media manager options
     $mimeTypes = explode(",", $params->get("legal_types"));
     $mimeTypes = array_map("trim", $mimeTypes);
     $typeValidator->setMimeTypes($mimeTypes);
     // Get allowed image extensions from media manager options.
     $legalExtensions = explode(",", $params->get("legal_extensions"));
     $legalExtensions = array_map("trim", $legalExtensions);
     $typeValidator->setLegalExtensions($legalExtensions);
     $file->addValidator($sizeValidator)->addValidator($typeValidator)->addValidator($serverValidator);
     // Validate the file
     if (!$file->isValid()) {
         throw new RuntimeException($file->getError());
     }
     // Generate temporary file name
     $ext = JFile::makeSafe(JFile::getExt($tmpFile['name']));
     // Generate a file name.
     $generatedName = new ITPrismString();
     $generatedName->generateRandomString();
     $tmpDestFile = JPath::clean($destFolder . DIRECTORY_SEPARATOR . $generatedName . "." . $ext);
     // Prepare uploader object.
     $uploader = new ITPrismFileUploaderLocal($uploadedFile);
     $uploader->setDestination($tmpDestFile);
     // Upload temporary file
     $file->setUploader($uploader);
     $file->upload();
     // Get file
     $tmpDestFile = JPath::clean($file->getFile());
     if (!is_file($tmpDestFile)) {
         throw new RuntimeException(JText::_('COM_IDENTITYPROOF_ERROR_FILE_CANT_BE_UPLOADED'));
     }
     // Set new permissions for the file.
     chmod($tmpDestFile, 0600);
     // Remove the temporary file that came from the form.
     if (JFile::exists($uploadedFile)) {
         JFile::delete($uploadedFile);
     }
     return $tmpDestFile;
 }
Beispiel #6
0
 public function uploadFile($fileData, $type)
 {
     $app = JFactory::getApplication();
     /** @var $app JApplicationAdministrator */
     jimport('joomla.filesystem.archive');
     jimport('itprism.file');
     jimport('itprism.file.uploader.local');
     jimport('itprism.file.validator.size');
     jimport('itprism.file.validator.server');
     $uploadedFile = JArrayHelper::getValue($fileData, 'tmp_name');
     $uploadedName = JArrayHelper::getValue($fileData, 'name');
     $errorCode = JArrayHelper::getValue($fileData, 'error');
     $destination = JPath::clean($app->get("tmp_path")) . DIRECTORY_SEPARATOR . JFile::makeSafe($uploadedName);
     $file = new ITPrismFile();
     // Prepare size validator.
     $KB = 1024 * 1024;
     $fileSize = (int) $app->input->server->get('CONTENT_LENGTH');
     $mediaParams = JComponentHelper::getParams("com_media");
     /** @var $mediaParams Joomla\Registry\Registry */
     $uploadMaxSize = $mediaParams->get("upload_maxsize") * $KB;
     // Prepare size validator.
     $sizeValidator = new ITPrismFileValidatorSize($fileSize, $uploadMaxSize);
     // Prepare server validator.
     $serverValidator = new ITPrismFileValidatorServer($errorCode, array(UPLOAD_ERR_NO_FILE));
     $file->addValidator($sizeValidator);
     $file->addValidator($serverValidator);
     // Validate the file
     if (!$file->isValid()) {
         throw new RuntimeException($file->getError());
     }
     // Prepare uploader object.
     $uploader = new ITPrismFileUploaderLocal($uploadedFile);
     $uploader->setDestination($destination);
     // Upload the file
     $file->setUploader($uploader);
     $file->upload();
     $fileName = basename($destination);
     // Extract file if it is archive
     $ext = JString::strtolower(JFile::getExt($fileName));
     if (strcmp($ext, "zip") == 0) {
         $destFolder = JPath::clean($app->get("tmp_path")) . "/" . $type;
         if (is_dir($destFolder)) {
             JFolder::delete($destFolder);
         }
         $filePath = $this->extractFile($destination, $destFolder);
     } else {
         $filePath = $destination;
     }
     return $filePath;
 }