public function renderFile() { $oCache = new Cache('license_' . $this->sLicense, DIRNAME_IMAGES); $sExtension = substr($this->sURL, strrpos($this->sURL, '.') + 1); $oDocumentType = DocumentTypePeer::getDocumentTypeByExtension($sExtension); $sMimeType = 'image/' . $sExtension; if ($oDocumentType !== null) { $sMimeType = $oDocumentType->getMimetype(); } header('Content-Type: ' . $sMimeType); if ($oCache->entryExists()) { $oCache->sendCacheControlHeaders(); $oCache->passContents(true); } else { $sImage = file_get_contents($this->sURL); $oCache->setContents($sImage); $oCache->sendCacheControlHeaders(); header("Content-Length: " . strlen($sImage)); print $sImage; } }
public function acceptsURL($sUrl, $bCreateType = false) { $sFileName = substr($sUrl, strrpos($sUrl, '/') + 1); $aName = explode('.', $sFileName); $sExtension = null; if (count($aName) > 1) { $sExtension = array_pop($aName); } $sFileName = implode('.', $aName); $aHeaders = @get_headers($sUrl, true); $sMimeType = null; $oDocumentType = null; if ($aHeaders && isset($aHeaders['Content-Type'])) { $sMimeType = $aHeaders['Content-Type']; $oDocumentType = DocumentTypeQuery::findDocumentTypeByMimetype($sMimeType); } if ($oDocumentType === null && $sExtension !== null) { $oDocumentType = DocumentTypePeer::getDocumentTypeByExtension($sExtension); } if ($oDocumentType === null && $bCreateType && $sMimeType && $sExtension) { $oDocumentType = new DocumentType(); $oDocumentType->setExtension($sExtension); $oDocumentType->setMimetype($sMimeType); $oDocumentType->save(); } if ($oDocumentType === null) { throw new LocalizedException("wns.file_upload.document_type_not_found", array('extension' => $sExtension, 'mimetype' => $sMimeType)); } return $oDocumentType->getId(); }