是否可以从POST收到的dataURL创建和显示图片文件?就像是:
<?
$imgstr = $_POST["imgdata"]; //data:image/png;base64,.... etc (it's always PNG)
echo base64_decode($imgstr); // idk what this really does
?>
Run Code Online (Sandbox Code Playgroud)
我无法使用<img>
标签来显示它.它需要像"普通"图像文件一样.
是的,试试:
<img alt="Base64 Image" src="data:image/png;base64,{$imgstr}" />
Run Code Online (Sandbox Code Playgroud)
编辑:确保你清理你的$ _POST,所以人们不要插入危险的垃圾......
例如,如果您的输入是
// Red dot graphic, stolen from Wikipedia
$imgstr = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
Run Code Online (Sandbox Code Playgroud)
然后你就可以做你想做的事
// Grab the MIME type and the data with a regex for convenience
if (!preg_match('/data:([^;]*);base64,(.*)/', $imgstr, $matches)) {
die("error");
}
// Decode the data
$content = base64_decode($matches[2]);
// Output the correct HTTP headers (may add more if you require them)
header('Content-Type: '.$matches[1]);
header('Content-Length: '.strlen($content));
// Output the actual image data
echo $content;
die;
Run Code Online (Sandbox Code Playgroud)