HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/web/itpartnership.net (cms)/modules/FeedbackForm/classes/FileUpload.class.php
<?php
// Feedback Form. 02/2005 SjG <feedbackform_cmsmodule@fogbound.net>
// A Module for CMS Made Simple, (c)2005 by Ted Kulp (wishy@cmsmadesimple.org)
// This project's homepage is: http://www.cmsmadesimple.org

class ffFileUpload extends ffInput {

  function ffFileUpload(&$mod_globals, $formRef, $params=array())
  {
    $this->ffInput($mod_globals, $formRef, $params);
    $this->Type = 'FileUpload';
    $this->DisplayType = $this->mod_globals->Lang('field_type_file_upload');
    $this->ValidationTypes = array(
				   $this->mod_globals->Lang('validation_none')=>'none');
    if (ffUtilityFunctions::def($params['max_size']))
      {
	$this->AddOption('max_size', 'max_size', $params['max_size']);
      }
    if (ffUtilityFunctions::def($params['permitted_extensions']))
      {
	$this->AddOption('permitted_extensions', 'permitted_extensions', $params['permitted_extensions']);
      }
    if (ffUtilityFunctions::def($params['show_details']))
      {
	$this->AddOption('show_details', 'show_details', $params['show_details']);
      }

  }

  function WriteToPublicForm($id, &$params, $return_id)
  {
    $module =& $this->mod_globals->selfptr;
    $show = $this->GetOptionByKind('show_details');
    if (strlen($this->CSSClass)>0)
      {
	echo "<div class=\"".$this->CSSClass."\">";
      }
    echo $module->CreateFileUploadInput($id, $this->Alias,$this->mod_globals->UseIDAndName?'id="'.$this->Alias.'"':'');
    if (ffUtilityFunctions::def($show[0]->Value))
      {
	$ms = $this->GetOptionByKind('max_size');
	$exts = $this->GetOptionByKind('permitted_extensions');
	if (ffUtilityFunctions::def($ms[0]->Value))
	  {
	    echo $this->mod_globals->Lang('maximum_size').': '.$ms[0]->Value.'kb';
	  }
	if (ffUtilityFunctions::def($exts[0]->Value))
	  {
	    if (ffUtilityFunctions::def($ms[0]->Value))
	      {
		echo ', ';
	      }
	    echo $this->mod_globals->Lang('permitted_filetypes') . ': '.$exts[0]->Value;
	  }
      }
    if (strlen($this->CSSClass)>0)
      {
	echo "</div>";
      }
  }


  function StatusInfo()
  {
    $ms = $this->GetOptionByKind('max_size');
    $exts = $this->GetOptionByKind('permitted_extensions');
    $ret = '';
    if (ffUtilityFunctions::def($ms[0]->Value))
      {
	$ret .= $this->mod_globals->Lang('maximum_size').': '.$ms[0]->Value.'kb';
      }
    if (ffUtilityFunctions::def($exts[0]->Value))
      {
	if (ffUtilityFunctions::def($ms[0]->Value))
	  {
	    $ret .= ', ';
	  }
	$ret .= $this->mod_globals->Lang('permitted_extensions') . ': '.$exts[0]->Value;
      }
  }


  function RenderAdminForm($formDescriptor)
  {
    $module =& $this->mod_globals->selfptr;
    $ms = $this->GetOptionByKind('max_size');
    $exts = $this->GetOptionByKind('permitted_extensions');
    $show = $this->GetOptionByKind('show_details');

    return array($this->mod_globals->Lang('title_maximum_size').':'=>
		 $module->CreateInputText($formDescriptor, 'max_size',
					    ffUtilityFunctions::def($ms[0]->Value)?$ms[0]->Value:($this->mod_globals->MaxUploadSize/1000),25,25),
		 $this->mod_globals->Lang('title_permitted_extensions').':'=>
		 $module->CreateInputText($formDescriptor, 'permitted_extensions',
					    ffUtilityFunctions::def($exts[0]->Value)?$exts[0]->Value:'',25,80).'<br />'.
		 $this->mod_globals->Lang('title_permitted_extensions_long'),
		 $this->mod_globals->Lang('title_show_limitations').':'=>$module->CreateInputCheckbox($formDescriptor, 'show_details', 'true', ffUtilityFunctions::def($show[0]->Value)?$show[0]->Value:'').
		 ' '.$this->mod_globals->Lang('title_show_limitations_long')
		 );
  }


  function Validate()
  {
    $result = true;
    $message = '';
    $ms = $this->GetOptionByKind('max_size');
    $exts = $this->GetOptionByKind('permitted_extensions');
    $fullAlias = $this->mod_globals->ModuleInputPrefix.$this->Alias;
    if ($_FILES[$fullAlias]['size'] < 1 && ! $this->Required)
      {
	return array(true,'');
      }
    if (ffUtilityFunctions::def($ms[0]->Value) && $_FILES[$fullAlias]['size'] > ($ms[0]->Value * 1000))
      {
	$message = $this->mod_globals->Lang('file_too_large'). ' '.($ms[0]->Value * 1000).'kb';
	$result = false;
      }
    if (ffUtilityFunctions::def($exts[0]->Value))
      {
	$match = false;
	$legalExts = explode(',',$exts[0]->Value);
	foreach ($legalExts as $thisExt)
	  {
	    if (preg_match('/\.'.trim($thisExt).'$/i',$_FILES[$fullAlias]['name']))
	      {
		$match = true;
	      }
	    else if (preg_match('/'.trim($thisExt).'/i',$_FILES[$fullAlias]['type']))
	      {
		$match = true;
	      }
	  }
	if (! $match)
	  {
	    $message = $this->mod_globals->Lang('illegal_file_type');
	    $result = false;
	  }
      }
    return array($result, $message);
  }

}

?>