记录学习与后端知识并分享学习代码过程(会飞的鱼Blog)

TP6响应输出图片设置响应头

会飞的鱼 0 773 2023年1月29日

ThinkPHP6响应输出图片,直接在浏览器显示,非下载文件

public function getQrCode()
{
    $app_id = config('miniprogram.app_id');
    $app_secret = config('miniprogram.app_secret');
    $m_wx = Wxmini::getInstance($app_id, $app_secret);
    $scene = 'uid=1';
    $page = 'pages/index/index';

    //获取微信小程序码, 返回的图片 Buffer
    $wx_mini_qrcode = $m_wx->getQrCodeStreamUnlimited($scene, $page);

    //响应给浏览器直接可以展示
    //第一种a:使用助手函数response, 直接在响应头参数中设置
    return response($wx_mini_qrcode, 200, ['Content-Length' => strlen($wx_mini_qrcode), 'Content-Type' => 'image/png']);

    //第一种b:使用助手函数response, Response类中有contentType接口可以调用
    return response($wx_mini_qrcode, 200, ['Content-Length' => strlen($wx_mini_qrcode)])->contentType('image/png');

    //第二种:用header函数指定响应头后echo输出
    /**
     * 注意不能使用 return 去替换 echo,
     * return后框架response类接管, 然后直接使用默认的Content-Type:text/html输出会导致你在浏览器看到一堆乱
     * 看着有种header函数设置是无效的错觉
     */
    ↑↑↑注意↑↑↑注意↑↑↑注意↑↑↑
    header("Content-Type: image/png; charset=utf-8");
    echo $wx_mini_qrcode;
    exit;

}
本文由 @会飞的鱼 于 2023-1-29 发布在 会飞的鱼Blog,如无特别说明,本博文章均为原创,转载请保留出处。

网友评论

    暂无评论

会飞的鱼 在线咨询

在线时间:9:00-22:00
周六、周日:14:00-22:00