file_put_contents保存损坏的图像[base64]

时间:2018-04-17 01:33:30

标签: php

我正在使用AJAX,我发送了一个POST请求,在该请求中我发送了一个画布生成的图像(dataURL)。请求完成后,在控制台中返回 base64 中生成的图像。我拿了所有的图像数据,然后进入一个网页(https://codebeautify.org/base64-to-image-converter),在那个页面中我放了图像数据,而且我得到了一个完美的图像。

Image Data in base64 to image converter

问题是函数 file_put_contents 写入损坏的文件。 (此外,文件重量超过0个字节)。

Corrupted file in save path

好吧,我不知道自己做错了什么。最后,这是代码,抱歉我的英语不好。谢谢:))

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); 
});

}

0 个答案:

没有答案