使用 PHPExcel 从 Symfony 路径插入图像

Insert Image from Symfony path with PHPExcel

我正在尝试使用 PHPExcel 的 PHPExcel_Worksheet_Drawing(在此 Symfony Bundle 中)在我的 Excel 中插入图像,但我明白了一直留言:

File http://benefest.local/uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg not found!

这是我的代码:

$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setPath($path);
$objDrawing->setWidth(30);
$objDrawing->setCoordinates('A1');
$objDrawing->setWorksheet($phpExcelObject->getActiveSheet());

我的图片是由VichUploaderBundle上传的,我正在通过一个函数生成绝对路径。哪个returns我http://benefest.local/uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg

在浏览器中,显示此图片!

有线索吗?

答案基于我对这个问题的评论。

URI 和文件路径有区别:

  • URI - 在浏览器中使用,或者在 HTTP 协议中更通用,以通过 web-server
  • 访问某些资源
  • File path - link 到 server/computer/etc.
  • 文件系统中的某个文件

您的函数 returns 一个 URI 字符串 (http://benefest.local/uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg),可用于通过网络服务器访问图像。

但是 PHPExcel_Worksheet_Drawing 以及其他库使用 PHP 的 filesystem functions 来访问本地的一些文件。所以你需要得到一个本地文件路径,而不是 URI(在你的情况下它是 ./uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg)。