You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel导出listings表单行数据为PDF时报60秒执行超时如何解决?

错误原因
  • 核心原因是你使用PHP内置的单线程开发服务器(也就是php artisan serve启动的服务)导致的阻塞:你触发PDF生成请求时,Laravel常用的PDF扩展(比如dompdf)如果需要加载视图引用的CSS、图片等静态资源,会发起新的HTTP请求到本地127.0.0.1:8000端口,但是单线程服务器同一时间只能处理一个请求,当前PDF请求还没处理完,没法响应资源加载请求,就会一直等待直到超过PHP最大执行时间阈值。
  • 次要可能原因:你的pdf_download视图代码存在未闭合的HTML标签(你提供的代码中table、tr等标签都没有完整闭合),dompdf解析不规范HTML时可能陷入死循环导致超时。
解决方法
  • 方案1(优先推荐):放弃使用PHP内置单线程开发服务器,改用多进程的服务环境,比如XAMPP、WAMP、Nginx+PHP-FPM等,从根本上解决单请求阻塞问题。
  • 方案2:修改PDF模板的资源加载方式,所有静态资源不要用asset()生成HTTP网络地址,改用本地绝对路径:
    比如加载图片用public_path('/assets/images/listings/'.$listing->listing_Fimage),CSS样式直接写在PDF模板的<style>标签内,不要外部引入HTTP地址的CSS文件,避免dompdf发起额外HTTP请求。
  • 方案3(临时应急):在控制器生成PDF的代码前临时调高最大执行时间阈值,注意这只是治标方案,没有解决根本阻塞问题:
    if($request->has('download')){
        ini_set('max_execution_time', 120); // 可根据需要调整时长
        $pdf = PDF::loadView('pdf_download');
        return $pdf->download('pdf_download.pdf');
    }
    
  • 方案4:补全pdf_download视图所有未闭合的HTML标签,保证HTML语法规范,避免dompdf解析异常。

内容的提问来源于stack exchange,提问作者imane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:45:03