如何从 Concrete5 中的文件路径获取文件对象?
How to get file object from file path in Concrete5?
我想从主题目录中的文件中获取缩略图,但是 getThumbnail()
函数要求我传递一个文件对象。
这显然行不通:
$v = View::getInstance();
$themePath = $v->getThemePath();
$thumbnail = $imageHelper->getThumbnail($themePath.'/images/abc.jpg', 100, 100, true);
那么是否可以从文件路径获取文件对象呢?
如果文件只存在于文件夹结构中,而不是具体的5文件对象,你首先需要FileImporter
:
use Concrete\Core\File\Importer;
$fi = new Importer();
if($fv = $fi->importIncomingFile($themePath . '/' . $filename)){
$returnFile = \Concrete\Core\File\File::getByID($fv->getFileID());
}
然后您可以将该文件对象传递给 getThumbNail()
函数。 getThumbNail()
不采用路径而是采用图像对象作为第一个参数:
$imageHelper = Core::make('helper/image');
$thumbnail = $imageHelper->getThumbnail($returnFile, 300, 9999, false);
以下是所有参数(来自 API):
/**
* Returns a path to the specified item, resized and/or cropped to meet max width and height. $obj can either be
* a string (path) or a file object.
* Returns an object with the following properties: src, width, height
* @param mixed $obj
* @param int $maxWidth
* @param int $maxHeight
* @param bool $crop
*/
public function getThumbnail($obj, $maxWidth, $maxHeight, $crop = false)
我想从主题目录中的文件中获取缩略图,但是 getThumbnail()
函数要求我传递一个文件对象。
这显然行不通:
$v = View::getInstance();
$themePath = $v->getThemePath();
$thumbnail = $imageHelper->getThumbnail($themePath.'/images/abc.jpg', 100, 100, true);
那么是否可以从文件路径获取文件对象呢?
如果文件只存在于文件夹结构中,而不是具体的5文件对象,你首先需要FileImporter
:
use Concrete\Core\File\Importer;
$fi = new Importer();
if($fv = $fi->importIncomingFile($themePath . '/' . $filename)){
$returnFile = \Concrete\Core\File\File::getByID($fv->getFileID());
}
然后您可以将该文件对象传递给 getThumbNail()
函数。 getThumbNail()
不采用路径而是采用图像对象作为第一个参数:
$imageHelper = Core::make('helper/image');
$thumbnail = $imageHelper->getThumbnail($returnFile, 300, 9999, false);
以下是所有参数(来自 API):
/**
* Returns a path to the specified item, resized and/or cropped to meet max width and height. $obj can either be
* a string (path) or a file object.
* Returns an object with the following properties: src, width, height
* @param mixed $obj
* @param int $maxWidth
* @param int $maxHeight
* @param bool $crop
*/
public function getThumbnail($obj, $maxWidth, $maxHeight, $crop = false)