我有这个代码将图像发送到test.php:
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.captureVisibleTab(null, function(img) {
$.ajax({
type: "POST",
url: "http://imap24.pl/tests/dom/testy/test.php",
data: "img=" + img,
success: function(e){
alert(e);
}});
});
});
img是base64(data:image / jpeg; base64,/ 9j / 4AAQSkZ ...)。我在test.php中有这个脚本
<?php
if (isset($_POST['img'])) {
$img = $_POST['img'];
$data = base64_decode($img);
$im = imagecreatefromstring($data);
imagejpeg($im, 'simpletext.jpg');
imagedestroy($im);
}
?>
结果我收到了这条消息
数据不是可识别的格式
怎么了?
答案 0 :(得分:1)
正如您所述,图片如下所示:data:image/jpeg;base64,…
因此,您应该删除此数据URL的第一部分,然后将其直接写入文件:
$comma = strpos($img, ',');
$data = base64_decode(substr($img, $comma+1));
file_put_contents("simpletext.jpg", $data);