【问题标题】:Insert Image from Symfony path with PHPExcel使用 PHPExcel 从 Symfony 路径插入图像
【发布时间】:2018-02-22 12:39:26
【问题描述】:

我正在尝试使用 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

在浏览器中显示此图像!

有什么线索吗?

【问题讨论】:

  • 你知道 URI 和文件路径的区别吗?返回的函数是一个 URI,可用于通过 Web 服务器访问图像。但是您需要文件系统中文件的路径,以便 php 可以读取它。
  • 谢谢,我也只尝试了路径,但我得到了同样的错误File /uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg not found!
  • 好的,我找到了解决方法,将路径设置为./uploads/persons/image/58af244d3f58c_16143190_10210682923503464_8658615512523719175_n.jpg

标签: symfony phpexcel vichuploaderbundle


【解决方案1】:

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

URI和文件路径有区别:

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

您的函数返回一个 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)。

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多