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; } }