public function importFromFile(&$importFile) { $app = JFactory::getApplication(); if (empty($importFile['name'])) { $app->enqueueMessage(JText::_('BROWSE_FILE'), 'notice'); return false; } jimport('joomla.filesystem.file'); $allowedFiles = array('csv', 'txt'); $uploadFolder = rtrim(JPath::clean(html_entity_decode($this->config->get('uploadfolder'))), DS) . DS; if (strpos($uploadFolder, JPATH_ROOT) !== false) { $uploadFolder = str_replace(JPATH_ROOT, '', $uploadFolder); } $uploadFolder = ltrim($uploadFolder, '/'); $uploadFolder = JPATH_ROOT . DS . $uploadFolder; $uploadPath = $uploadFolder; if (!is_dir($uploadPath)) { jimport('joomla.filesystem.folder'); JFolder::create($uploadPath); $data = '<html><body bgcolor="#FFFFFF"></body></html>'; JFile::write($uploadPath . 'index.html', $data); } if (!is_writable($uploadPath)) { @chmod($uploadPath, '0755'); if (!is_writable($uploadPath)) { $app->enqueueMessage(JText::sprintf('WRITABLE_FOLDER', $uploadPath), 'notice'); } } $attachment = new stdClass(); $attachment->filename = strtolower(JFile::makeSafe($importFile['name'])); $attachment->size = $importFile['size']; $attachment->extension = strtolower(substr($attachment->filename, strrpos($attachment->filename, '.') + 1)); if (!in_array($attachment->extension, $allowedFiles)) { $app->enqueueMessage(JText::sprintf('ACCEPTED_TYPE', $attachment->extension, implode(',', $allowedFiles)), 'notice'); return false; } if (!move_uploaded_file($importFile['tmp_name'], $uploadPath . $attachment->filename)) { if (!JFile::upload($importFile['tmp_name'], $uploadPath . $attachment->filename)) { $app->enqueueMessage(JText::sprintf('FAIL_UPLOAD', $importFile['tmp_name'], $uploadPath . $attachment->filename), 'error'); } } hikaserial::increasePerf(); $contentFile = file_get_contents($uploadPath . $attachment->filename); if (!$contentFile) { $app->enqueueMessage(JText::sprintf('FAIL_OPEN', $uploadPath . $attachment->filename), 'error'); return false; } unlink($uploadPath . $attachment->filename); return $this->handleCsvContent($contentFile); }