我正在使用Symfony 4。 在我的代码中,我有一个我在Controller和Command中使用的函数。
public function offlinequiz_check_scanned_page($scannedpage, $colle) {
....
$this->load_stored_image($scannedpage->getFilename(), $scannedpage, $colle);
....
}
public function load_stored_image($file, $scannedpage, $colle) {
....
$pathparts = pathinfo($file);
$filename = $pathparts['filename'] . '.' . $pathparts['extension'];
$imageinfo = getimagesize($file);
....
}
在控制器中使用时,该功能可以正常工作。 在命令中,我有这个错误:
Failed to open stream: No such file or directory.
$scannedpage
在两种情况下都是相同的对象。
getFilename()
返回图片路径:./uploads/copies/xxx/image_name.jpg
。
上传目录位于/public
。
我尝试使用Asset Component来获取正确的路径,但这些图片是由用户上传的,不是由Webpack Encore管理的,所以当我尝试这个时:
$package = new Package(new EmptyVersionStrategy());
$this->load_stored_image($package->getUrl($scannedpage->getFilename()), $scannedpage, $colle);
返回与:$scannedpage->getFilename()
相同的内容。