将base64编码的字符串存储到指定的文件夹

时间:2015-10-13 16:37:00

标签: php laravel-4 webcam.js

美好的一天!我只想将捕获的图像放在指定的文件夹上,而不是通过ajax调用放在数据库本身上。这就是我所做的:

JS文件:

$('#btn-save-snapshot').on('click', function() {

        Webcam.snap(function(data_uri)
        {

            $.ajax({
                url: '/capture',
                type: 'POST',
                data: 
                {
                    captimage: data_uri
                },
                success: function(data)
                {
                    alert('Saved!');
                },
                error: function(xhr)
                {
                    alert($.parseJSON(xhr.responseText)['error']['message']);
                }
            });
        });
    });

我不知道如何将其保存到指定的文件夹。我已经在控制器上使用了Input :: file('captimage') - > move($ destination)但它不起作用。

1 个答案:

答案 0 :(得分:1)

你只能找回一个字符串,而不是图像本身(通常为base64 - 格式)。所以你需要做的是将信息发送到一个单独的php文件,然后使用file_put_contents来保存图像。保存之前,您必须删除前缀。

所以你可以这样做:(如果你找回base64 - 字符串):

file_put_contents('/capture/img.jpg', base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $_POST['captImage'])));

如果不是base64,请发布结果,以及captImage - 变量的内容。