使用PHPExcel从Symfony路径插入图像

时间:2018-02-22 12:39:27

标签: symfony phpexcel vichuploaderbundle

我尝试使用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上传,我通过一个功能生成绝对路径。返回给我http://benefest.local/uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg

在浏览器中显示此图像!

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

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

URI和文件路径之间存在差异:

  • URI - 在浏览器中使用,或在HTTP协议中更通用,以通过网络服务器访问某些资源
  • File path - 指向服务器/计算机/等文件系统中某个文件的链接。

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

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