00001 <?PHP 00017 include_once("FileInput.php"); 00018 00027 class FileUploader extends FileInput 00028 { 00029 public $m_UploadRoot ; 00030 public $m_UploadRootURL ; 00031 public $m_UploadFolder ; 00032 public $m_UploadFileType ; 00033 public $m_Uploaded =false; 00034 public $m_Deleteable; 00035 public $m_UseRawName=false; 00036 00043 function __construct(&$xmlArr, $formObj) 00044 { 00045 parent::__construct($xmlArr, $formObj); 00046 $this->readMetaData($xmlArr); 00047 if(defined("PUBLIC_UPLOAD_PATH")){ 00048 $this->m_UploadRoot= constant("PUBLIC_UPLOAD_PATH"); 00049 }else{ 00050 $this->m_UploadRoot= APP_HOME."/files/upload"; 00051 } 00052 if(defined("PUBLIC_UPLOAD_URL")){ 00053 $this->m_UploadRootURL = str_replace(APP_URL,"",constant("PUBLIC_UPLOAD_URL")); 00054 }else{ 00055 $this->m_UploadRootURL = "/files/upload"; 00056 } 00057 } 00058 00065 protected function readMetaData(&$xmlArr) 00066 { 00067 parent::readMetaData($xmlArr); 00068 $this->m_UploadFolder = isset($xmlArr["ATTRIBUTES"]["UPLOADFOLDER"]) ? $xmlArr["ATTRIBUTES"]["UPLOADFOLDER"] : null; 00069 $this->m_UploadFileType = isset($xmlArr["ATTRIBUTES"]["FILETYPE"]) ? $xmlArr["ATTRIBUTES"]["FILETYPE"] : null; 00070 $this->m_Deleteable = isset($xmlArr["ATTRIBUTES"]["DELETEABLE"]) ? $xmlArr["ATTRIBUTES"]["DELETEABLE"] : "N"; 00071 $this->m_UseRawName = isset($xmlArr["ATTRIBUTES"]["USERAWNAME"]) ? $xmlArr["ATTRIBUTES"]["USERAWNAME"] : false; 00072 } 00073 00080 function setValue($value) 00081 { 00082 if($this->m_Deleteable=='N') 00083 { 00084 00085 } 00086 else 00087 { 00088 $delete_user_opt=BizSystem::clientProxy()->getFormInputs($this->m_Name."_DELETE"); 00089 if($delete_user_opt) 00090 { 00091 $this->m_Value=""; 00092 return; 00093 } 00094 else 00095 { 00096 if(count($_FILES)>0){ 00097 00098 }else{ 00099 $this->m_Value = $value; 00100 } 00101 } 00102 } 00103 if(count($_FILES)>0) 00104 { 00105 if(!$this->m_Uploaded) 00106 { 00107 $file = $_FILES[$this->m_Name]; 00108 00109 if(!is_dir($this->m_UploadRoot.$this->m_UploadFolder)) 00110 { 00111 mkdir($this->m_UploadRoot.$this->m_UploadFolder ,0777,true); 00112 } 00113 if($this->m_UseRawName){ 00114 $uploadFile = $this->m_UploadFolder."/".$file['name']; 00115 }else{ 00116 $uploadFile = $this->m_UploadFolder."/".date("YmdHis")."-".md5($file['name']); 00117 } 00118 if($this->m_UploadFileType){ 00119 $pattern = "/".$this->m_UploadFileType."$/si"; 00120 if(!preg_match($pattern,$file['name'])){ 00121 return; 00122 } 00123 } 00124 if(move_uploaded_file($file['tmp_name'], $this->m_UploadRoot.$uploadFile)) 00125 { 00126 $this->m_Value = $this->m_UploadRootURL.$uploadFile; 00127 $this->m_Uploaded=true; 00128 } 00129 return $uploadFile; 00130 } 00131 } 00132 } 00133 00134 public function render() 00135 { 00136 if($this->m_Deleteable=="Y"){ 00137 $delete_opt="<input type=\"checkbox\" name=\"" . $this->m_Name . "_DELETE\" id=\"" . $this->m_Name ."_DELETE\" >Delete"; 00138 } else{ 00139 $delete_opt=""; 00140 } 00141 $disabledStr = ($this->getEnabled() == "N") ? "disabled=\"true\"" : ""; 00142 $style = $this->getStyle(); 00143 $func = $this->getFunction(); 00144 $sHTML .= "<input type=\"file\" name='$this->m_Name' id=\"" . $this->m_Name ."\" value='$this->m_Value' $disabledStr $this->m_HTMLAttr $style $func /> 00145 $delete_opt"; 00146 return $sHTML; 00147 } 00148 00149 } 00150 ?>