【发布时间】:2019-02-07 14:40:30
【问题描述】:
我正在尝试上传从网络摄像头拍摄的图像。我使用画布显示该图像并通过 POST 方法将 base64_encoded json 数据发送到 PHP,因此在 PHP 中解码数据并尝试通过 file_put_contents 创建图像。但上传的图像每次都损坏。我也在 PHP 中使用了 header("Access-Control-Allow-Origin: *") 。我还检查了服务器中是否启用了 file_get_contents。可能是什么错误?请帮忙。
我的代码是:
JS:
// Trigger photo take
var imagedata;
document.getElementById('snap').addEventListener('click', function() {
$('#canvas').show();
context.drawImage(video, 0, 0, 640, 480);
$('#upload-button').removeAttr("disabled");
var image = new Image();
image.src = canvas.toDataURL();
imagedata = image.src;
$('#webimage').val(imagedata);
});
PHP:
header("Access-Control-Allow-Origin: *");
$input_data = json_decode(trim(file_get_contents('php://input')), true);
$base = $input_data['image'];
$destination_directory = "uploads/";
$file_name = time();
$file_name = $file_name.'.png';
$targetPath = $destination_directory . $file_name;
$input_data = base64_decode($base);
file_put_contents($targetPath, $input_data);
【问题讨论】: