首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
hyperf 如何使用 mpdf ?
### 问题描述 hyperf框架使用 mpdf,生成pdf文件下载,composer安装。 使用报错,提示错误是权限错误相关,但是我想这个应该是我的某个逻辑问题。望解答! ### Swoole版本,PHP版本,以及操作系统版本信息 php7.2 swoole4.5 ### 相关代码 ```php namespace App\Controller; use Hyperf\Di\Annotation\Inject; use Mpdf\Mpdf; class MpdfController extends AbstractController { /** * @Inject() * @var Mpdf */ public $mpdfService; public function index() { // Write some HTML code: $this->mpdfService->WriteHTML('Hello World'); // Output a PDF file directly to the browser $this->mpdfService->Output(); } } ``` ### 错误信息 [ERROR] Data has already been sent to output (/usr/local/nginx/html/fire/hyperf-skeleton/vendor/hyperf/di/src/Definition/DefinitionSource.php at line 318), unable to output PDF file[9412] in /usr/local/nginx/html/fire/hyperf-skeleton/vendor/mpdf/mpdf/src/Mpdf.php
发布于6年前 · 5 次浏览 · 来自
提问
弘扬正气
### 问题描述 hyperf框架使用 mpdf,生成pdf文件下载,composer安装。 使用报错,提示错误是权限错误相关,但是我想这个应该是我的某个逻辑问题。望解答! ### Swoole版本,PHP版本,以及操作系统版本信息 php7.2 swoole4.5 ### 相关代码 ```php namespace App\Controller; use Hyperf\Di\Annotation\Inject; use Mpdf\Mpdf; class MpdfController extends AbstractController { /** * @Inject() * @var Mpdf */ public $mpdfService; public function index() { // Write some HTML code: $this->mpdfService->WriteHTML('Hello World'); // Output a PDF file directly to the browser $this->mpdfService->Output(); } } ``` ### 错误信息 [ERROR] Data has already been sent to output (/usr/local/nginx/html/fire/hyperf-skeleton/vendor/hyperf/di/src/Definition/DefinitionSource.php at line 318), unable to output PDF file[9412] in /usr/local/nginx/html/fire/hyperf-skeleton/vendor/mpdf/mpdf/src/Mpdf.php
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-06-06
鲁飞
简单看了下这个组件直接调用Output的话是直接输出浏览器,在hyperf中不能直接这么使用。 你可以保存到本地以后再次处理下。 ``` $mpdf->Output('filename.pdf', \Mpdf\Output\Destination::FILE); ```
赞
0
回复
2020-06-12
弘扬正气
回复
鲁飞
嗯,最后解决方案是,保存本地-上传七牛-前端路径访问
赞
0
回复
2020-06-13
弘扬正气
回复
鲁飞
现在遇到一个问题,hyperf的BUG么? 就是我生成的PDF内容都是相同的,重启hyperf服务后,才能生成新的PDF内容。这个是缓存?但是我每次请求带的都是不同的参数,生成的内容都不一样,也不会涉及缓存问题。
赞
0
回复
2020-06-14
鲁飞
回复
弘扬正气
不知道,最简复现代码给hyperf提issue吧
赞
0
回复