首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在刀片视图中呈现xml svg响应

如何在刀片视图中呈现xml svg响应
EN

Stack Overflow用户
提问于 2019-08-07 20:25:50
回答 3查看 1.8K关注 0票数 0

“我调用了一个以xml svg格式返回qrcode api。我想在刀片视图中显示该qrcode。我要在刀片视图中显示xml svg响应。”

我从调用的API中获取控制器中的xml svg qrcode,我希望在刀片中显示它

在控制器中,这就是我将数据呈现到刀片中方式

代码语言:javascript
复制
return response()
    ->view(
        'qrcode',
        [
            'output' => $output
        ],
        200
    )
    ->header('Content-Type', 'image/svg+xml');

这是我的刀片的样子:

代码语言:javascript
复制
<svg {{$output}}></svg>

我希望在刀片视图上看到svg xml qrcode ($output变量包含它)变量

EN

回答 3

Stack Overflow用户

发布于 2019-08-07 20:29:06

将输出放在svg标记之间

代码语言:javascript
复制
<svg>{{ $output }}</svg>
票数 0
EN

Stack Overflow用户

发布于 2019-08-07 20:33:20

您需要创建一个Response并将标头附加到它,而不是视图。

代码语言:javascript
复制
$response = Response::make(View::make('qrcode', ['output' => $output]), 200);
$response->header('Content-Type', 'image/svg+xml');
return $response;

我还建议只在视图中添加标题:

代码语言:javascript
复制
<?php header('Content-Type: image/svg+xml'); ?>

{{ $output }} <!-- Try without SVG tags seems as you have XML tags in your $output anyway -->

有关更多信息,请参阅Laravel Docs

票数 0
EN

Stack Overflow用户

发布于 2021-08-12 05:47:53

试试这个,它对我很有效:

代码语言:javascript
复制
<?php 

   $file_path = file_get_contents(public_path('client/assets/images') .'/'. $filename);
   
   return response($file_path)->header('Content-Type', 'image/svg+xml');
  /*The public path above is path to *.svg file*/

?>

此外,我们还可以在图像标记上使用它,如下所示:

代码语言:javascript
复制
<img src="/assets/images/logo.svg" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57394483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档