我正在使用AJAX,我发送了一个POST请求,在该请求中我发送了一个画布生成的图像(dataURL)。请求完成后,在控制台中返回 base64 中生成的图像。我拿了所有的图像数据,然后进入一个网页(https://codebeautify.org/base64-to-image-converter),在那个页面中我放了图像数据,而且我得到了一个完美的图像。
Image Data in base64 to image converter
问题是函数 file_put_contents 写入损坏的文件。 (此外,文件重量超过0个字节)。
好吧,我不知道自己做错了什么。最后,这是代码,抱歉我的英语不好。谢谢:))
uploadThumbnail.php
<?php
session_start();
$img = $_REQUEST['imgBase64'];
$img = htmlspecialchars($img);
echo $img;
file_put_contents("../thumbnails/" . $_SESSION['uploadedVideoID'] .'.png',
base64_decode($img));
?>
并且,来电者脚本。
function generateThumbnail() {
var thecanvas = document.getElementById('taco');
var context = thecanvas.getContext('2d');
context.drawImage(video, 0, 0, 256, 144);
var dataURL = thecanvas.toDataURL();
//create img
var img = document.createElement('img');
img.setAttribute('src', dataURL);
//append img in container div
document.getElementById('videoThumbnailContainer').appendChild(img);
$.ajax({
type: "POST",
url: "upload/uploadThumbnail.php",
data: {
imgBase64: dataURL
}
}).done(function(o) {
console.log(o);
});
}