我正在创建包含一些产品详细信息的自定义PDF文件。我想显示图像的产品附件。我已将附件控制器更改为
header('Content-Disposition: inline; filename="'.utf8_decode($a->file_name).'"');
当我通过浏览器访问网址时,显示效果很好:
http://domain.nl/nl/index.php?controller=attachment&id_attachment=483
但是在我的PDF模板中的img标签内使用此url会给出:
TCPDF ERROR: [Image] Unable to get image: http://domain.nl/nl/index.php?controller=attachment&id_attachment=483
有没有人知道如何使这项工作?
答案 0 :(得分:1)
我在AttachmentController.php旁边创建了一个名为AttachmentInlineController.php的新文件。内容略有不同:
<?php
class AttachmentInlineControllerCore extends FrontController
{
public function __construct()
{
$a = new Attachment(Tools::getValue('id_attachment'), $this->context->language->id);
if (!$a->id) {
Tools::redirect('index.php');
}
if (ob_get_level() && ob_get_length() > 0) {
ob_end_clean();
}
header('Content-Transfer-Encoding: binary');
header('Content-Type: '.$a->mime);
header('Content-Length: '.filesize(_PS_DOWNLOAD_DIR_.$a->file));
header('Content-Disposition: inline; filename="'.utf8_decode($a->file_name).'"');
@set_time_limit(0);
readfile(_PS_DOWNLOAD_DIR_.$a->file);
exit;
}
}?>
我删除了挂钩,更改了内容 - 处置内联,并将功能从postProcess()
更改为__construct
。现在,如果您使用:
http://domain.nl/nl/index.php?controller=attachmentInline&id_attachment=483
它会以内联方式显示该附件,您可以在图片标签等中使用此网址。