代码之家  ›  专栏  ›  技术社区  ›  VinZ

使用PHPExcel从Symfony路径插入图像

  •  1
  • VinZ  · 技术社区  · 7 年前

    我正在尝试使用 PHPExcel_Worksheet_Drawing PHPExcel的 Symfony Bundle )但我一直收到这样的信息:

    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 回复  |  直到 7 年前
        1
  •  1
  •   ozahorulia Vivek Sadh    7 年前

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

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

    • URI -在浏览器中使用,或在HTTP协议中更通用,以通过web服务器访问某些资源
    • 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 ).