public function onPreRender($param)
{
parent::onPreRender($param);
if (!$this->getPage()->getIsPostBack() && isset($_GET['TActiveFileUpload_InputId']) && isset($_GET['TActiveFileUpload_TargetId']) && $_GET['TActiveFileUpload_InputId'] == $this->getClientID()) {
// tricky workaround to intercept "uploaded file too big" error: real uploads happens in onFileUpload instead
$this->_errorCode = UPLOAD_ERR_FORM_SIZE;
$localName = str_replace('\\', '/', tempnam(Prado::getPathOfNamespace($this->getTempPath()), ''));
$fileName = addslashes($this->getFileName());
$params = new TActiveFileUploadCallbackParams();
$params->localName = $localName;
$params->fileName = $fileName;
$params->fileSize = $this->getFileSize();
$params->fileType = $this->getFileType();
$params->errorCode = $this->getErrorCode();
echo <<<EOS
<script language="Javascript">
\tOptions = new Object();
\tOptions.clientID = '{$_GET['TActiveFileUpload_InputId']}';
\tOptions.targetID = '{$_GET['TActiveFileUpload_TargetId']}';
\tOptions.fileName = '{$params->fileName}';
\tOptions.fileSize = '{$params->fileSize}';
\tOptions.fileType = '{$params->fileType}';
\tOptions.errorCode = '{$params->errorCode}';
\tOptions.callbackToken = '{$this->pushParamsAndGetToken($params)}';
\tparent.Prado.WebUI.TActiveFileUpload.onFileUpload(Options);
</script>
EOS;
}
}