コード例 #1
0
ファイル: ImportBase.class.php プロジェクト: bitking/sysPass
 /**
  * Leer la cabecera del archivo XML y obtener patrones de aplicaciones conocidas.
  *
  * @return bool
  */
 protected function parseFileHeader()
 {
     $handle = @fopen($this->_file->getTmpFile(), "r");
     $headersRegex = '/(KEEPASSX_DATABASE|revelationdata)/i';
     if ($handle) {
         // No. de líneas a leer como máximo
         $maxLines = 5;
         $count = 0;
         while (($buffer = fgets($handle, 4096)) !== false && $count <= $maxLines) {
             if (preg_match($headersRegex, $buffer, $app)) {
                 fclose($handle);
                 return strtolower($app[0]);
             }
             $count++;
         }
         fclose($handle);
     }
     return false;
 }
コード例 #2
0
ファイル: Import.class.php プロジェクト: bitking/sysPass
 /**
  * Iniciar la importación de cuentas.
  *
  * @param array  $fileData  Los datos del archivo
  * @return array resultado del proceso
  */
 public static function doImport(&$fileData)
 {
     try {
         $file = new FileImport($fileData);
         switch ($file->getFileType()) {
             case 'text/csv':
             case 'application/vnd.ms-excel':
                 $import = new CsvImport($file);
                 $import->setFieldDelimiter(self::$csvDelimiter);
                 break;
             case 'text/xml':
                 $import = new XmlImport($file);
                 $import->setImportPass(self::$importPwd);
                 break;
             default:
                 throw new SPException(SPException::SP_WARNING, _('Tipo mime no soportado'), _('Compruebe el formato del archivo'));
         }
         $import->setUserId(self::$defUser);
         $import->setUserGroupId(self::$defGroup);
         $import->doImport();
     } catch (SPException $e) {
         Log::writeNewLog(_('Importar Cuentas'), $e->getMessage() . ';;' . $e->getHint());
         $result['error'] = array('description' => $e->getMessage(), 'hint' => $e->getHint());
         return $result;
     }
     Log::writeNewLog(_('Importar Cuentas'), _('Importación finalizada'));
     $result['ok'] = array(_('Importación finalizada'), _('Revise el registro de eventos para más detalles'));
     return $result;
 }