小编Ven*_*Rao的帖子

Laravel - 无法将存储在我的数据库中的.png图像作为base64编码的字符串提供

我使用HTML2Canvas为我的页面上的div创建了一个png图像,它为图像创建了base64编码的字符串.我将其作为内联显示在页面上:

<img id="headerImage" src="data:image/png;base64,iVBORw0KGg..." width="60">
Run Code Online (Sandbox Code Playgroud)

然后我将它作为LONGTEXT保存在我的数据库中.

在我的控制器中,我似乎无法将图像作为有效的PNG服务器.尝试了一系列不同的方法,如代码片段所示:

                $imageStr = $plan->image;

                $pos = strpos($imageStr, ',');
                $trimmed = substr($imageStr, $pos+1);

                $image = base64_decode($trimmed);

                /*
                $im = imagecreatefromstring($image);
                if ($im !== false) {
                        header('Content-Type: image/png');
                        imagepng($im);
                        imagedestroy($im);
                } else {
                        echo 'Failed';
                }

                return;
                */

                $response = Response::make(trim($image), 200);
                $response->header('Content-Type', 'image/png');

                return $response;

                /*
                return Response::stream(function() use ($image) {
                        echo $image;
                        }, 200, array('Content-Type:image/png'));
                */
Run Code Online (Sandbox Code Playgroud)

当我查看标题时,它看起来很合理:

t=4102 [st=437]        HTTP_TRANSACTION_READ_RESPONSE_HEADERS
                       --> HTTP/1.1 200 OK
                           Date: Tue, 24 Feb 2015 16:36:28 GMT
                           Server: …
Run Code Online (Sandbox Code Playgroud)

php png image laravel

2
推荐指数
1
解决办法
2979
查看次数

标签 统计

image ×1

laravel ×1

php ×1

png ×1