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