Ignore:
Timestamp:
Mar 12, 2013, 10:58:10 PM (11 years ago)
Author:
chronos
Message:
  • Přidáno: Akce pro import plateb přes API nebo ze souboru z tabulky "Bankovní účty" ze správy dat.
  • Přidáno: Prozatím zkoušení importu z Fio a Poštovní spořitelny.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Common/Form/Types/File.php

    r501 r502  
    11<?php
     2
     3class DbFile
     4{
     5  var $Id;
     6  var $FileName;
     7  var $Size;
     8  var $Directory;
     9  var $DirectoryId;
     10  var $TempName;
     11 
     12  function DetectMimeType()
     13  {
     14    // For proper mime-type detection php-pecl-Fileinfo package should be installed on *nix systems
     15    $FileInfo = new finfo(FILEINFO_MIME, '/usr/share/misc/magic');
     16    $Result = $FileInfo->file($FileName);
     17    //$FileInfo->close();
     18    return($Result);
     19  }
     20 
     21  function GetSize($Item)
     22  {
     23    $FileName = $this->GetFullName($Item);
     24    if(file_exists($FileName)) $Result = filesize($FileName);
     25      else $Result = 0;
     26    return($Result);
     27  }
     28 
     29  function GetFullName()
     30  {
     31    $ParentId = $this->Directory;
     32    while($ParenId != null)
     33    {
     34      $DbResult = $this->Database->select('FileDirectory', '*', 'Id='.$ParentId);
     35      $DbRow = $DbResult->fetch_assoc();
     36      $Path .= $DbRow['Name'].'/';
     37      $ParentId = $DbRow['Parent'];
     38    }     
     39    $Result = $this->UploadFileFolder.'/'.$Path.$File->Name;
     40    return($Result);
     41  }
     42 
     43  function GetExt()
     44  {
     45    return(substr($this->Name, 0, strpos($this->Name, '.') - 1));
     46  }
     47 
     48  function Delete()
     49  {
     50    if(file_exists($this->GetFullName())) unlink($this->GetFullName());
     51  }
     52 
     53  function GetContent()
     54  {
     55    if($this->TempName != '') $Content = file_get_contents($this->TempName);
     56      else $Content = file_get_contents($this->GetFullName());
     57    return($Content);
     58  }
     59}
    260
    361class TypeFile extends TypeBase
     
    765  var $DirectoryId;
    866 
    9   function __construct()
     67  function __construct($FormManager)
    1068  {
     69    parent::__construct($FormManager);
    1170    $this->FileDownloadURL = 'File.php';
    1271    $this->DirectoryId = null;
     
    1574  function OnView($Item)
    1675  {
    17     global $Database;
    18 
    19     $DbResult = $Database->query('SELECT `Name`, `Size` FROM `SystemFile` WHERE `Id`='.$Item['Value']);
    20     if($DbResult->num_rows > 0)
    21     {
    22       $DbRow = $DbResult->fetch_assoc();
    23       return('<a href="'.$this->FileDownloadURL.'?Id='.$Item['Value'].'">'.$DbRow['Name'].'</a> ('.HumanSize($DbRow['Size']).')');
    24     } else return('');
     76    $File = &$Item['Value'];
     77    return('<a href="'.$this->FileDownloadURL.'?Id='.$File->Id.'">'.
     78      $File.'</a> ('.HumanSize($File->Size).')');
    2579  }
    2680
     
    3084    // ini_set("upload_max_filesize", "100M");
    3185    // <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
    32     $Output = '<input type="file" name="'.$Item['Name'].'" value="">';
     86    $File = &$Item['Value'];
     87    $Output = '<input type="file" name="'.$Item['Name'].'" value="'.$File->Name.'">';
    3388    return($Output);
    3489  }
     
    3691  function OnLoad($Item)
    3792  {
    38     global $Database, $Config;
    39 
    40     $Result = 0;
    41     print_r($_FILES);
    42     print_r($_POST);
     93    if(!is_object($Item['Value'])) $Item['Value'] = new DbFile();
     94    $File = &$Item['Value'];
    4395    if(array_key_exists($Item['Name'], $_FILES) and ($_FILES[$Item['Name']]['name'] != ''))
    4496    {
    45       if(file_exists($_FILES[$Item['Name']]['tmp_name']))
     97      $UploadFile = $_FILES[$Item['Name']];
     98      if(file_exists($UploadFile['tmp_name']))
    4699      {
    47         $FileName = substr($_FILES[$Item['Name']]['name'], strrpos($_FILES[$Item['Name']]['name'], '/'));
    48         $Database->insert('File', array('Name' => $FileName, 'Size' => filesize($_FILES[$Item['Name']]['tmp_name']),
    49            'Directory' => $this->DirectoryId));
    50         $Result = $Database->insert_id;
    51         if(!move_uploaded_file($_FILES[$Item['Name']]['tmp_name'], $this->UploadFileFolder.'/'.$Result))
    52           SystemMessage('Nahrání souboru', 'Cílová složka není dostupná!');
     100        $File->Name = $UploadFile['name'];
     101        $File->Size = $UploadFile['size'];
     102        $File->TempName = $UploadFile['tmp_name'];
    53103      }
    54104    }
    55     return($Result);
     105    return($File);
    56106  }
     107 
     108  function OnLoadDb($Item)
     109  {
     110    if(!is_object($Item['Value'])) $Item['Value'] = new DbFile();
     111    $File = &$Item['Value'];
     112    $DbResult = $this->Database->select('File', '*', 'Id='.$File->Id);
     113    if($DbResult->num_rows() > 0)
     114    {
     115      $DbRow = $DbResult->fetch_assoc();
     116      $File->Name = $DbRow['Name'];
     117      $File->Size = $DbRow['Size'];
     118      $File->Directory = $DbRow['Directory'];
     119    }
     120    return($File);
     121  }
     122 
     123  function OnSaveDb($Item)
     124  {
     125    if(!is_object($Item['Value'])) $Item['Value'] = new DbFile();
     126    $File = &$Item['Value'];
     127    $Properties = array('Name' => $File->Name,
     128      'Size' => $File->GetSize(), 'Directory' => $File->Directory);
     129    $DbResult = $this->Database->select('File', '*', 'Id='.$File->Id);
     130    if($DbResult->num_rows() > 0)
     131    {
     132      $DbRow = $DbResult->fetch_assoc();
     133      if($File->TempName != '')
     134      {
     135        $FileName = $File->GetFullName();
     136        unlink($FileName);
     137      }
     138      $this->Database->update('File', 'Id='.$File->Id, $Properties);
     139    } else
     140    {
     141      $this->Database->insert('File', $Properties);
     142      $File->Id = $this->Database->insert_id;
     143    }
     144    if(!move_uploaded_file($File->TempName, $FileName))
     145      SystemMessage('Nahrání souboru', 'Cílová složka není dostupná!');
     146  }
     147 
    57148}
    58149
Note: See TracChangeset for help on using the changeset viewer.