本文整理汇总了PHP中TYPO3\CMS\Core\Resource\FileInterface类的典型用法代码示例。如果您正苦于以下问题:PHP FileInterface类的具体用法?PHP FileInterface怎么用?PHP FileInterface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FileInterface类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render
/**
* Create a link to a file that forces a download
*
* @param \TYPO3\CMS\Core\Resource\FileInterface $file
* @param bool $uriOnly
* @return string
*/
public function render(\TYPO3\CMS\Core\Resource\FileInterface $file, $uriOnly = FALSE)
{
$queryParameterArray = array('eID' => 'dumpFile', 't' => '');
if ($file instanceof \TYPO3\CMS\Core\Resource\File) {
$queryParameterArray['f'] = $file->getUid();
$queryParameterArray['t'] = 'f';
} elseif ($file instanceof \TYPO3\CMS\Core\Resource\ProcessedFile) {
$queryParameterArray['p'] = $file->getUid();
$queryParameterArray['t'] = 'p';
}
$queryParameterArray['token'] = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac(implode('|', $queryParameterArray), 'resourceStorageDumpFile');
$queryParameterArray['download'] = '';
$uri = 'index.php?' . str_replace('+', '%20', http_build_query($queryParameterArray));
// Add absRefPrefix
if (!empty($GLOBALS['TSFE'])) {
$uri = $GLOBALS['TSFE']->absRefPrefix . $uri;
}
if ($uriOnly) {
return $uri;
}
$this->tag->addAttribute('href', $uri);
$this->tag->setContent($this->renderChildren());
$this->tag->forceClosingTag(TRUE);
return $this->tag->render();
}
示例2: getCroppedWidth
/**
* When retrieving the width for a media file
* a possible cropping needs to be taken into account.
*
* @param FileInterface $fileObject
* @return int
*/
protected function getCroppedWidth(FileInterface $fileObject)
{
if (!$fileObject->hasProperty('crop') || empty($fileObject->getProperty('crop'))) {
return $fileObject->getProperty('width');
}
$croppingConfiguration = json_decode($fileObject->getProperty('crop'), true);
return (int) $croppingConfiguration['width'];
}
示例3: getCroppedProperty
/**
* When retrieving the height or width for a media file
* a possible cropping needs to be taken into account.
*
* @param FileInterface $fileObject
* @param string $dimensionalProperty 'width' or 'height'
* @return int
*/
protected function getCroppedProperty(FileInterface $fileObject, $dimensionalProperty)
{
if (!$fileObject->hasProperty('crop') || empty($fileObject->getProperty('crop'))) {
return $fileObject->getProperty($dimensionalProperty);
}
$croppingConfiguration = json_decode($fileObject->getProperty('crop'), true);
return (int) $croppingConfiguration[$dimensionalProperty];
}
示例4: getImageUri
/**
* Get public url of image depending on the environment
*
* @param FileInterface $image
* @return string
* @api
*/
public function getImageUri(FileInterface $image)
{
if ($this->environmentService->isEnvironmentInFrontendMode()) {
$uriPrefix = $GLOBALS['TSFE']->absRefPrefix;
} else {
$uriPrefix = '../';
}
return $uriPrefix . $image->getPublicUrl();
}
示例5: populateMetadata
public function populateMetadata(\TYPO3\CMS\Core\Resource\FileInterface $file, \TYPO3\CMS\Core\Resource\Folder $folder)
{
$qualities = GeneralUtility::makeInstance(CalculateService::class)->quality($file->getUid());
$message = '';
foreach ($qualities as $key => $value) {
$message .= $key . ' => ' . $value . "\n";
}
$this->flash($message);
}
示例6: extractMetaData
/**
* Takes a file reference and extracts its meta data.
*
* @param \TYPO3\CMS\Core\Resource\FileInterface $file
* @return array
*/
public function extractMetaData(FileInterface $file)
{
$localTempFilePath = $file->getForLocalProcessing(FALSE);
$query = GeneralUtility::makeInstance('ApacheSolrForTypo3\\Tika\\Service\\Tika\\SolrCellQuery', $localTempFilePath);
$query->setExtractOnly();
$response = $this->solr->extract($query);
$metaData = $this->solrResponseToArray($response[1]);
$this->cleanupTempFile($localTempFilePath, $file);
$this->log('Meta Data Extraction using Solr', array('file' => $file, 'solr connection' => (array) $this->solr, 'query' => (array) $query, 'response' => $response, 'meta data' => $metaData));
return $metaData;
}
示例7: getImageUri
/**
* Get public url of image depending on the environment
*
* @param FileInterface $image
* @return string
* @api
*/
public function getImageUri(FileInterface $image)
{
$imageUrl = $image->getPublicUrl();
// no prefix in case of an already fully qualified URL (having a schema)
if (strpos($imageUrl, '://')) {
$uriPrefix = '';
} elseif ($this->environmentService->isEnvironmentInFrontendMode()) {
$uriPrefix = $GLOBALS['TSFE']->absRefPrefix;
} else {
$uriPrefix = '../';
}
return $uriPrefix . $imageUrl;
}
示例8: render
/**
* Render for given File(Reference) HTML output
*
* @param FileInterface $file
* @param int|string $width TYPO3 known format; examples: 220, 200m or 200c
* @param int|string $height TYPO3 known format; examples: 220, 200m or 200c
* @param array $options controls = TRUE/FALSE (default TRUE), autoplay = TRUE/FALSE (default FALSE), loop = TRUE/FALSE (default FALSE)
* @param bool $usedPathsRelativeToCurrentScript See $file->getPublicUrl()
* @return string
*/
public function render(FileInterface $file, $width, $height, array $options = array(), $usedPathsRelativeToCurrentScript = FALSE)
{
$additionalAttributes = array();
if (!isset($options['controls']) || !empty($options['controls'])) {
$additionalAttributes[] = 'controls';
}
if (!empty($options['autoplay'])) {
$additionalAttributes[] = 'autoplay';
}
if (!empty($options['loop'])) {
$additionalAttributes[] = 'loop';
}
return sprintf('<video width="%d" height="%d"%s><source src="%s" type="%s"></video>', (int) $width, (int) $height, empty($additionalAttributes) ? '' : ' ' . implode(' ', $additionalAttributes), htmlspecialchars($file->getPublicUrl($usedPathsRelativeToCurrentScript)), $file->getMimeType());
}
示例9: getImageUri
/**
* Get public url of image depending on the environment
*
* @param FileInterface $image
* @return string
* @api
*/
public function getImageUri(FileInterface $image)
{
$imageUrl = $image->getPublicUrl();
// no prefix in case of an already fully qualified URL (having a schema)
// We need to fix the dection for PHP 5.4.6 and below as the host detection is broken
if (parse_url($imageUrl, PHP_URL_HOST) !== NULL || strpos($imageUrl, '//') === 0) {
$uriPrefix = '';
} elseif ($this->environmentService->isEnvironmentInFrontendMode()) {
$uriPrefix = $GLOBALS['TSFE']->absRefPrefix;
} else {
$uriPrefix = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH');
}
return $uriPrefix . $imageUrl;
}
示例10: extractText
/**
* The actual text extraction.
*
* @param FileInterface $file
* @return string
*/
public function extractText(FileInterface $file)
{
$localTempFile = $file->getForLocalProcessing(false);
// extract text
$content = file_get_contents($localTempFile);
// In case of remote storage, the temporary copy of the
// original file in typo3temp must be removed
// Simply compare the filenames, because the filename is so unique that
// it is nearly impossible to have a file with this name in a storage
if (PathUtility::basename($localTempFile) !== $file->getName()) {
unlink($localTempFile);
}
return $content;
}
示例11: render
/**
* Render for given File(Reference) html output
*
* @param FileInterface $file
* @param int|string $width TYPO3 known format; examples: 220, 200m or 200c
* @param int|string $height TYPO3 known format; examples: 220, 200m or 200c
* @param array $options
* @param bool $usedPathsRelativeToCurrentScript See $file->getPublicUrl()
* @return string
*/
public function render(FileInterface $file, $width, $height, array $options = null, $usedPathsRelativeToCurrentScript = false)
{
if ($file instanceof FileReference) {
$autoplay = $file->getProperty('autoplay');
if ($autoplay !== null) {
$options['autoplay'] = $autoplay;
}
}
$urlParams = array();
if (!empty($options['autoplay'])) {
$urlParams[] = 'auto_play=1';
}
if ($file instanceof FileReference) {
$orgFile = $file->getOriginalFile();
} else {
$orgFile = $file;
}
$soundCloudId = $this->getOnlineMediaHelper($file)->getOnlineMediaId($orgFile);
$src = sprintf('//w.soundcloud.com/player/?url=%s?%s', urlencode('https://api.soundcloud.com/tracks/' . $soundCloudId), implode('&', $urlParams));
foreach (['class', 'dir', 'id', 'lang', 'style', 'title', 'accesskey', 'tabindex', 'onclick'] as $key) {
if (!empty($options[$key])) {
$attributes[] = $key . '="' . htmlspecialchars($options[$key]) . '"';
}
}
return sprintf('<iframe src="%s"%s></iframe>', $src, empty($attributes) ? '' : ' ' . implode(' ', $attributes));
}
示例12: createMagicImage
/**
* Creates a magic image
*
* @param \TYPO3\CMS\Core\Resource\FileInterface $imageFileObject: the original image file
* @param array $fileConfiguration (width, height, maxW, maxH)
* @param string $targetFolderCombinedIdentifier: target folder combined identifier
* @return \TYPO3\CMS\Core\Resource\FileInterface
*/
public function createMagicImage(\TYPO3\CMS\Core\Resource\FileInterface $imageFileObject, array $fileConfiguration, $targetFolderCombinedIdentifier)
{
$magicImage = NULL;
// Get file for processing
$imageFilePath = $imageFileObject->getForLocalProcessing(TRUE);
// Process dimensions
$maxWidth = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($fileConfiguration['width'], 0, $fileConfiguration['maxW']);
$maxHeight = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($fileConfiguration['height'], 0, $fileConfiguration['maxH']);
if (!$maxWidth) {
$maxWidth = $fileConfiguration['maxW'];
}
if (!$maxHeight) {
$maxHeight = $fileConfiguration['maxH'];
}
// Create the magic image
$magicImageInfo = $this->getImageObject()->imageMagickConvert($imageFilePath, 'WEB', $maxWidth . 'm', $maxHeight . 'm');
if ($magicImageInfo[3]) {
$targetFileName = 'RTEmagicC_' . pathInfo($imageFileObject->getName(), PATHINFO_FILENAME) . '.' . pathinfo($magicImageInfo[3], PATHINFO_EXTENSION);
$magicFolder = $this->getMagicFolder($targetFolderCombinedIdentifier);
if ($magicFolder instanceof \TYPO3\CMS\Core\Resource\Folder) {
$magicImage = $magicFolder->addFile($magicImageInfo[3], $targetFileName, 'changeName');
}
}
return $magicImage;
}
示例13: generatePublicUrl
/**
* Generate public url for file
*
* @param Resource\ResourceStorage $storage
* @param Resource\Driver\DriverInterface $driver
* @param Resource\FileInterface $file
* @param $relativeToCurrentScript
* @param array $urlData
* @return void
*/
public function generatePublicUrl(Resource\ResourceStorage $storage, Resource\Driver\DriverInterface $driver, Resource\FileInterface $file, $relativeToCurrentScript, array $urlData)
{
// We only render special links for non-public files
if ($this->enabled && !$storage->isPublic()) {
$queryParameterArray = array('eID' => 'dumpFile', 't' => '');
if ($file instanceof Resource\File) {
$queryParameterArray['f'] = $file->getUid();
$queryParameterArray['t'] = 'f';
} elseif ($file instanceof Resource\ProcessedFile) {
$queryParameterArray['p'] = $file->getUid();
$queryParameterArray['t'] = 'p';
}
$queryParameterArray['token'] = GeneralUtility::hmac(implode('|', $queryParameterArray), 'BeResourceStorageDumpFile');
// $urlData['publicUrl'] is passed by reference, so we can change that here and the value will be taken into account
$urlData['publicUrl'] = BackendUtility::getAjaxUrl('FalSecuredownload::publicUrl', $queryParameterArray);
}
}
示例14: getCroppedImageSrcByFile
/**
* Get the cropped image by File Object
*
* @param FileInterface $file
* @param string $ratio
*
* @return string The new filename
*/
public function getCroppedImageSrcByFile(FileInterface $file, $ratio)
{
$absoluteImageName = GeneralUtility::getFileAbsFileName($file->getPublicUrl());
$focusPointX = MathUtility::forceIntegerInRange((int) $file->getProperty('focus_point_x'), -100, 100, 0);
$focusPointY = MathUtility::forceIntegerInRange((int) $file->getProperty('focus_point_y'), -100, 100, 0);
$tempImageFolder = 'typo3temp/focuscrop/';
$tempImageName = $tempImageFolder . $file->getSha1() . '-' . str_replace(':', '-', $ratio) . '-' . $focusPointX . '-' . $focusPointY . '.' . $file->getExtension();
$absoluteTempImageName = GeneralUtility::getFileAbsFileName($tempImageName);
if (is_file($absoluteTempImageName)) {
return $tempImageName;
}
$absoluteTempImageFolder = GeneralUtility::getFileAbsFileName($tempImageFolder);
if (!is_dir($absoluteTempImageFolder)) {
GeneralUtility::mkdir_deep($absoluteTempImageFolder);
}
$this->graphicalFunctions = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Imaging\\GraphicalFunctions');
$imageSizeInformation = getimagesize($absoluteImageName);
$width = $imageSizeInformation[0];
$height = $imageSizeInformation[1];
// dimensions
/** @var \HDNET\Focuspoint\Service\DimensionService $service */
$dimensionService = GeneralUtility::makeInstance('HDNET\\Focuspoint\\Service\\DimensionService');
list($focusWidth, $focusHeight) = $dimensionService->getFocusWidthAndHeight($width, $height, $ratio);
$cropMode = $dimensionService->getCropMode($width, $height, $ratio);
list($sourceX, $sourceY) = $dimensionService->calculateSourcePosition($cropMode, $width, $height, $focusWidth, $focusHeight, $focusPointX, $focusPointY);
// generate image
$sourceImage = $this->graphicalFunctions->imageCreateFromFile($absoluteImageName);
$destinationImage = imagecreatetruecolor($focusWidth, $focusHeight);
$this->graphicalFunctions->imagecopyresized($destinationImage, $sourceImage, 0, 0, $sourceX, $sourceY, $focusWidth, $focusHeight, $focusWidth, $focusHeight);
$this->graphicalFunctions->ImageWrite($destinationImage, $absoluteTempImageName, $GLOBALS['TYPO3_CONF_VARS']['GFX']['jpg_quality']);
return $tempImageName;
}
示例15: getImageUri
/**
* Get public url of image depending on the environment
*
* @param FileInterface $image
* @param bool|FALSE $absolute Force absolute URL
* @return string
* @api
*/
public function getImageUri(FileInterface $image, $absolute = false)
{
$imageUrl = $image->getPublicUrl();
$parsedUrl = parse_url($imageUrl);
// no prefix in case of an already fully qualified URL
if (isset($parsedUrl['host'])) {
$uriPrefix = '';
} elseif ($this->environmentService->isEnvironmentInFrontendMode()) {
$uriPrefix = $GLOBALS['TSFE']->absRefPrefix;
} else {
$uriPrefix = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH');
}
if ($absolute) {
// If full URL has no scheme we add the same scheme as used by the site
// so we have an absolute URL also usable outside of browser scope (e.g. in an email message)
if (isset($parsedUrl['host']) && !isset($parsedUrl['scheme'])) {
$uriPrefix = (GeneralUtility::getIndpEnv('TYPO3_SSL') ? 'https:' : 'http:') . $uriPrefix;
}
return GeneralUtility::locationHeaderUrl($uriPrefix . $imageUrl);
} else {
return $uriPrefix . $imageUrl;
}
}