所以问题是:
任何想法,提示?请指导......
答案 0 :(得分:1)
就个人而言,我完全绕过了View,并设置了content-type和body,以便在这种情况下直接从控制器返回一个图像。将图像写入文件只是为了对服务器的另一次调用可以检索它似乎既不合理也不可扩展。最终,除非你做的事非常不正统,否则无论如何你都会使用<img src="..."/>
从页面请求图像。
package SomeController;
...
sub qrcode :Local {
my ($self, $c, @args) = @_;
my $png;
eval { $png = ... } } ||
$c->res->redirect($c->uri_for('/static/images/sorry_qrcode_failed.png'));
$c->res->content_type('image/png');
$c->res->body($png);
}
...和您的网页请求
<img src="/somecontroller/qrcode/foo/bar" />
希望有所帮助。
答案 1 :(得分:0)
注意:我不想从控制器传递二进制或base64数据到视图?
这是一个问题还是一个陈述,我不确定。我会传递信息以生成QR到视图,视图将生成实际图像。
如果您不想通过View生成QR,也不想传递任何二进制数据,那么只剩下一个选项:URL(http或文件)。
答案 2 :(得分:0)
我建议您使用QRCode View for Catalyst:
这样,QRCode图像将自动从数据生成,并且不需要在服务器上存储任何图像,占用空间。 这就是我实际做的事情,非常方便:)