perl:正确的“内容类型”格式以返回“图像数据 uri”

Posted

技术标签:

【中文标题】perl:正确的“内容类型”格式以返回“图像数据 uri”【英文标题】:perl: correct `content type` formatting for returning `image data uri` 【发布时间】:2018-03-15 21:03:30 【问题描述】:

我在angularjs 中有一个模板,期待通过模板的img 元素的src 属性调用的服务器调用返回的image data uri

<img   src="http://localhost:3000/returnimage" />

在服务器端,写在PerlDancer 我有:

any ['get', 'post'] => '/returnimage' => sub 
    content_type 'image/jpeg;base64;';
    'data:image/jpeg;base64,/9j/4gIcSUNDX1B....N5f2hqE//Z';
;

模板渲染的结果是一个损坏的图像标签: 但是调用被执行:

网络响应和预览不可用。但是,如果我直接从浏览器调用http://localhost:3000/returnimage,它们确实包含完整的image data uri 为'data:image/jpeg;base64,/9j/4gIcSUNDX1B....N5f2hqE//Z'。虽然出现黑色图像并且在检查时:

关于问题/修复的任何想法?

【问题讨论】:

src 属性需要图像并且您提供图像的 MIME 类型,但您实际上返回包含图像的数据 URI,而不是图像本身。响应不能直接返回图片内容吗? @amon 后端生成一个图像数据uri,如子程序中返回的字符串中的示例......应该如何处理它才能成功/功能性地返回到src属性?谢谢! 【参考方案1】:

Perl 子程序:

my $photo = '/9j/4gIcSUNDX....oqOU1MzEFUa8x2MJf5JUjFV3llWW3UVscTLNhd93KFWQUrqHn/ABEc2CfmIASx0nMWLiN5f2hqE//Z';
my $decoded= MIME::Base64::decode_base64($photo);
content_type 'image/jpeg';
$decoded;

【讨论】:

以上是关于perl:正确的“内容类型”格式以返回“图像数据 uri”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用“imageWithData”保存和检索UIImages保持正确的图像格式?

让 Perl 返回正确的退出代码

Perl 变量:数组变量

如何正确格式化 PDO 结果? - 以字符串形式返回的数字结果?

Apache 从 Perl CGI 脚本的脚本返回格式错误的标头

PERL 中的模式匹配以句点“.”结尾