Exemple #1
0
 private function _processFileUploads($files, $uid, $pid)
 {
     //Import filesystem libraries.
     jimport('joomla.filesystem.file');
     $errors = array();
     $config = $this->_umodel->getFileUploadCfg();
     $max = $config['max_filesize'] * 1024 * 1024;
     require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_file.php';
     $filetypes = JobBoardFileHelper::getValidFtypes();
     $component_folder = JPATH_BASE . DS . 'images' . DS . 'com_jobboard';
     if (!JFolder::exists($component_folder)) {
         $component_folder_created = JFolder::create($component_folder);
         if ($component_folder_created == false) {
             $errors[] = JText::_('COM_JOBBOARD_USERFOLDER_CREATE_ERR');
         }
     }
     $sec_file = $component_folder . DS . 'index.html';
     if (!JFile::exists($sec_file)) {
         $_html = '<!DOCTYPE html><title></title>';
         JFile::write($sec_file, $_html);
     }
     $users_folder = $component_folder . DS . 'users';
     if (!JFolder::exists($users_folder)) {
         $users_folder_created = JFolder::create($users_folder);
         if ($users_folder_created == false) {
             $errors[] = JText::_('COM_JOBBOARD_USERFOLDER_CREATE_ERR');
         }
     }
     $sec_file = $users_folder . DS . 'index.html';
     if (!JFile::exists($sec_file)) {
         $_html = '<!DOCTYPE html><title></title>';
         JFile::write($sec_file, $_html);
     }
     foreach ($files as $file) {
         $file_name_title = $file["title"] == '' ? $file["name"] . '(' . JText::_('COM_JOBBOARD_FILE_NOTITLE') . ')' : $file["name"] . '(' . $file["title"] . ')';
         if ($file['size'] > $max) {
             $errors[] = JText::sprintf('COM_JOBBOARD_MAX_FILESIZE_ERR', $file_name_title, $config["max_filesize"]);
         } elseif (!in_array($file['type'], $filetypes)) {
             $errors[] = JText::sprintf('COM_JOBBOARD_FILENOTPERM', $file_name_title, $file["type"]);
         } else {
             //Clean up filename
             $filename = JFile::makeSafe($file['name']);
             $filename = str_replace(" ", "_", $filename);
             $file['name'] = $filename;
             //Set up the source and destination of the file
             $src = $file['tmp_name'];
             $user_folder = $users_folder . DS . $uid;
             if (!JFolder::exists($user_folder)) {
                 $user_folder_created = JFolder::create($user_folder);
                 if ($user_folder_created == false) {
                     $errors[] = JText::_('COM_JOBBOARD_USERFOLDER_CREATE_ERR');
                 }
             }
             $sec_file = $user_folder . DS . 'index.html';
             if (!JFile::exists($sec_file)) {
                 $_html = '<!DOCTYPE html><title></title>';
                 JFile::write($sec_file, $_html);
             }
             $user_files_folder = $user_folder . DS . 'files';
             if (!JFolder::exists($user_files_folder)) {
                 $user_files_folder_created = JFolder::create($user_files_folder);
                 if ($user_files_folder_created == false) {
                     $errors[] = JText::_('COM_JOBBOARD_USERFOLDER_CREATE_ERR');
                 }
             }
             $sec_file = $user_files_folder . DS . 'index.html';
             if (!JFile::exists($sec_file)) {
                 $_html = '<!DOCTYPE html><title></title>';
                 JFile::write($sec_file, $_html);
             }
             $new_files_folder = $user_files_folder . DS . $pid;
             if (!JFolder::exists($new_files_folder)) {
                 $new_files_folder_created = JFolder::create($new_files_folder);
                 if ($new_files_folder_created == false) {
                     $errors[] = JText::_('COM_JOBBOARD_USERFOLDER_CREATE_ERR');
                 }
             }
             $sec_file = $new_files_folder . DS . 'index.html';
             if (!JFile::exists($sec_file)) {
                 $_html = '<!DOCTYPE html><title></title>';
                 JFile::write($sec_file, $_html);
             }
             $dest = $new_files_folder . DS . $file['name'];
             if (!JFile::upload($src, $dest)) {
                 $errors[] = JText::_('COM_JOBBOARD_FILE_UPLDERR') . ' - ' . $file_name_title;
             } else {
                 unset($file['tmp_name'], $file['error']);
                 //convert to generic MS-Office filetypes
                 if ($file['type'] == $filetypes[6] || $file['type'] == $filetypes[7]) {
                     $file['type'] = "application/msword";
                 }
                 if ($file['type'] == $filetypes[9] || $file['type'] == $filetypes[10]) {
                     $file['type'] = "application/msexcel";
                 }
                 //save to db
                 if ($this->_umodel->saveCvFile($uid, $pid, $file, $new_files_folder) == false) {
                     $errors[] = JText::_('COM_JOBBOARD_FILE_UPLDERR') . ' - ' . $file_name_title;
                 }
             }
         }
     }
     if (count($errors) <= 0) {
         return true;
     } else {
         return $errors;
     }
 }
Exemple #2
0
 function uploadCv()
 {
     jimport('joomla.filesystem.file');
     jimport('joomla.filesystem.folder');
     require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_file.php';
     require_once JPATH_COMPONENT_ADMINISTRATOR . DS . 'helpers' . DS . 'jobboard_guest.php';
     $filetypes = JobBoardFileHelper::getMinValidFtypes();
     $file_errors = false;
     $upload_msg = '';
     $upload_file = JRequest::getVar('cv', null, 'files', 'array');
     //Clean up filename
     $this->_filename = JFile::makeSafe($upload_file['name']);
     $this->_filename = str_replace(" ", "_", $this->_filename);
     // Check valid file format for Upload
     if ($upload_file["size"] > 0) {
         if ($upload_file["size"] > JobBoardGuestHelper::getMaxFilesizeBytes()) {
             $upload_msg = '<li>' . JText::_('MAX_CVSIZE_ERR') . '</li>';
             $file_errors = true;
         }
         if (!in_array($upload_file['type'], $filetypes)) {
             $upload_msg .= '<li>' . JText::_('CV_FILEFORMAT_MSG') . '</li>';
             $file_errors = true;
         }
     } else {
         if (strlen($this->_filename) <= 0 || $upload_file["size"] <= 0) {
             $upload_msg = '<li>' . JText::_('CV_FILE_ERR') . '</li>';
             $file_errors = true;
         }
     }
     $cv_folder = JPATH_COMPONENT_ADMINISTRATOR . DS . 'cv';
     if (!JFolder::exists($cv_folder)) {
         $upload_msg = '<li>' . JText::_('COM_JOBBOARD_FILE_NOFOLDER') . '</li>';
         $file_errors = true;
     }
     if ($file_errors) {
         $corrections = new JObject();
         $corrections->errors = true;
         $corrections->msg = $upload_msg;
         return $corrections;
     }
     $file_hash = strtolower($this->randId());
     $hashed_file = strtolower($file_hash . '_' . $this->_filename);
     //Set up the source and destination of the file
     $src = $upload_file['tmp_name'];
     $dest = $cv_folder . DS . $hashed_file;
     if (!JFile::upload($src, $dest)) {
         $upload_msg = '<li>' . JText::_('COM_JOBBOARD_FILE_UPLDERR') . ' - ' . $file_name_title . '</li>';
         $file_errors = true;
     } else {
         unset($upload_file['tmp_name'], $upload_file['error']);
         //convert to generic MS-Office filetypes
         if ($upload_file['type'] == $filetypes[3] || $upload_file['type'] == $filetypes[4]) {
             $upload_file['type'] = "application/msword";
         }
     }
     if ($file_errors) {
         $corrections = new JObject();
         $corrections->errors = true;
         $corrections->msg = $upload_msg;
         return $corrections;
     }
     return array(strtolower($this->_filename), $file_hash, $upload_file['type']);
 }