我的页面上有一个视频元素显示网络摄像头流。接下来我有一个画布,它具有拍摄快照并在画布中显示图像的功能。现在我需要将此画布图像发送到服务器并使用 PHP 将其保存到文件中。我在网上结合了各种教程,最后得到了下面的代码,但是保存在服务器文件夹中的图像只是空白,所以我猜 PHP 文件没有正确接收要显示的数据......如果可以请帮助: ) 只有 Jquery + AJAX 不传输 post 变量是问题......这里是代码:
var int=self.setInterval(function(){snapshot()},2000);
function snapshot() {
// Draws current image from the video element into the canvas
ctx.drawImage(output, 0,0, canvas.width, canvas.height);
var dataURL = canvas.toDataURL();
dataURL = dataURL.replace('data:image/png;base64,','');
$.ajax({
type: 'POST',
url: 'onlinewebcams.php',
data: postData,
contentType: 'application/json'
});
}
然后有一个单独的 PHP 文件,但包含在保存 POST 图像的同一页面上(不起作用):
这是PHP文件代码:
sleep(5); // wait 5 seconds
define('UPLOAD_DIR', 'allwebcams/');
$img = $_POST['dataURL'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR .uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';