2016-03-22 143 views
2

我想從主題目錄中的文件中獲取縮略圖,但getThumbnail()函數需要我傳遞一個文件對象。如何從Concrete5中的文件路徑獲取文件對象?

這顯然是行不通的:

$v = View::getInstance(); 
$themePath = $v->getThemePath();  
$thumbnail = $imageHelper->getThumbnail($themePath.'/images/abc.jpg', 100, 100, true); 

那麼,這可以從文件路徑獲取文件對象?

+0

難道我的回答您解決問題? –

回答

1

如果該文件只存在於文件夾結構,但並不像concrete5文件對象,你需要的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)所有PARAMS:

/** 
* 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) 
+0

我現在在不同的上下文中使用它,我試圖刪除這個文件,但它不是這樣工作的:'$ returnFile-> delete();'。這不應該工作嗎? – user1448031

+0

它應該......你得到什麼錯誤? –

+0

我沒有收到任何錯誤。這正是我想要做的: if($ fv = $ fi-> import('application/files/test.pdf')){return 0File = \ Concrete \ Core \ File \ File :: getByID($ fv-> getFileID()); } $ mh-> addAttachment($ returnFile); \t \t \t \t $ returnFile-> delete(); – user1448031