Lançado Adianti Framework 7.6!
Clique aqui para saber mais
menu

Adianti Solutions

API

Adianti, Framework, PHP, MVC, Active record, Front controller, IDE, RAD, Web, multiplataforma, geração de código, desenvolvimento rápido, relatórios, formulários, listagens, datagrids, gráficos, banco de dados, padrões de projeto, design patterns API do Adianti Framework.
API Docs
code
Selecione a classe

Source for file AdiantiUploaderService.php

Documentation is available at AdiantiUploaderService.php

  1. <?php
  2. namespace Adianti\Service;
  3.  
  4. use Adianti\Core\AdiantiCoreTranslator;
  5. use Adianti\Core\AdiantiApplicationConfig;
  6.  
  7. /**
  8.  * File uploader listener
  9.  *
  10.  * @version    7.4
  11.  * @package    service
  12.  * @author     Nataniel Rabaioli
  13.  * @author     Pablo Dall'Oglio
  14.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  15.  * @license    http://www.adianti.com.br/framework-license
  16.  */
  17. {
  18.     function show($param)
  19.     {
  20.         $ini  AdiantiApplicationConfig::get();
  21.         $seed APPLICATION_NAME !empty($ini['general']['seed']$ini['general']['seed''s8dkld83kf73kf094' );
  22.         $block_extensions ['php''php3''php4''phtml''pl''py''jsp''asp''htm''shtml''sh''cgi''htaccess'];
  23.         
  24.         $folder 'tmp/';
  25.         $response array();
  26.         if (isset($_FILES['fileName']))
  27.         {
  28.             $file $_FILES['fileName'];
  29.             
  30.             if$file['error'=== && $file['size')
  31.             {
  32.                 $path $folder.$file['name'];
  33.                 
  34.                 // check blocked file extension, not using finfo because file.php.2 problem
  35.                 foreach ($block_extensions as $block_extension)
  36.                 {
  37.                     if (strpos(strtolower($file['name'])".{$block_extension}"!== false)
  38.                     {
  39.                         $response array();
  40.                         $response['type''error';
  41.                         $response['msg']  AdiantiCoreTranslator::translate('Extension not allowed');
  42.                         echo json_encode($response);
  43.                         return;
  44.                     }
  45.                 }
  46.                 
  47.                 if (!empty($param['extensions']))
  48.                 {
  49.                     $name $param['name'];
  50.                     $extensions unserialize(base64_decode$param['extensions'));
  51.                     $hash md5("{$seed}{$name}".base64_encode(serialize($extensions)));
  52.                     
  53.                     if ($hash !== $param['hash'])
  54.                     {
  55.                         $response array();
  56.                         $response['type''error';
  57.                         $response['msg']  AdiantiCoreTranslator::translate('Hash error');
  58.                         echo json_encode($response);
  59.                         return;
  60.                     }
  61.                     
  62.                     // check allowed file extension
  63.                     $ext pathinfo($file['name']PATHINFO_EXTENSION);
  64.                     
  65.                     if (!in_array(strtolower($ext),  $extensions))
  66.                     {
  67.                         $response array();
  68.                         $response['type''error';
  69.                         $response['msg']  AdiantiCoreTranslator::translate('Extension not allowed');
  70.                         echo json_encode($response);
  71.                         return;
  72.                     }
  73.                 }
  74.                 
  75.                 if (is_writable($folder) )
  76.                 {
  77.                     ifmove_uploaded_file$file['tmp_name']$path ) )
  78.                     {
  79.                         $response['type''success';
  80.                         $response['fileName'$file['name'];
  81.                     }
  82.                     else
  83.                     {
  84.                         $response['type''error';
  85.                         $response['msg''';
  86.                     }
  87.                 }
  88.                 else
  89.                 {
  90.                     $response['type''error';
  91.                     $response['msg']  AdiantiCoreTranslator::translate('Permission denied'": {$path}";
  92.                 }
  93.                 echo json_encode($response);
  94.             }
  95.             else
  96.             {
  97.                 $response['type''error';
  98.                 $response['msg']  AdiantiCoreTranslator::translate('Server has received no file''. ' AdiantiCoreTranslator::translate('Check the server limits'.  '. ' AdiantiCoreTranslator::translate('The current limit is'' ' self::getMaximumFileUploadSizeFormatted();
  99.                 echo json_encode($response);
  100.             }
  101.         }
  102.         else
  103.         {
  104.             $response['type''error';
  105.             $response['msg']  AdiantiCoreTranslator::translate('Server has received no file''. ' AdiantiCoreTranslator::translate('Check the server limits'.  '. ' AdiantiCoreTranslator::translate('The current limit is'' ' self::getMaximumFileUploadSizeFormatted();
  106.             echo json_encode($response);
  107.         }
  108.     }
  109.     
  110.     /**
  111.      *
  112.      */
  113.     function getMaximumFileUploadSizeFormatted()  
  114.     {  
  115.         $post_max_size self::convertSizeToBytes(ini_get('post_max_size'));
  116.         $upld_max_size self::convertSizeToBytes(ini_get('upload_max_filesize'));  
  117.         
  118.         if ($post_max_size $upld_max_size)
  119.         {
  120.             return 'post_max_size: ' ini_get('post_max_size');
  121.         }
  122.         
  123.         return 'upload_max_filesize: ' .ini_get('upload_max_filesize');
  124.     
  125.     
  126.     /**
  127.      *
  128.      */
  129.     function getMaximumFileUploadSize()  
  130.     {  
  131.         return min(self::convertSizeToBytes(ini_get('post_max_size'))self::convertSizeToBytes(ini_get('upload_max_filesize')));  
  132.     }  
  133.     
  134.     /**
  135.      *
  136.      */
  137.     function convertSizeToBytes($size)
  138.     {
  139.         $suffix strtoupper(substr($size-1));
  140.         if (!in_array($suffix,array('P','T','G','M','K'))){
  141.             return (int)$size;  
  142.         
  143.         $value substr($size0-1);
  144.         switch ($suffix{
  145.             case 'P':
  146.                 $value *= 1024;
  147.                 // intended
  148.             case 'T':
  149.                 $value *= 1024;
  150.                 // intended
  151.             case 'G':
  152.                 $value *= 1024;
  153.                 // intended
  154.             case 'M':
  155.                 $value *= 1024;
  156.                 // intended
  157.             case 'K':
  158.                 $value *= 1024;
  159.                 break;
  160.         }
  161.         return (int)$value;
  162.     }
  163. }