Сохранить строку в кодировке base64 в указанной папке
Добрый день! Я просто хочу поместить захваченное изображение в указанную папку, а не в саму базу данных посредством вызова ajax. Вот что я сделал:
Файл JS:
$ ('# btn-save-snapshot'). on ('click', function () { Webcam.snap (функция (data_uri) { $.Ajax({ url: '/capture', тип: 'POST', данные: { Captimage: data_uri }, успех: функция (данные) { предупреждение ('Saved!'); }, ошибка: функция (xhr) { предупреждение (. $ parseJSON(xhr.responseText)['ошибка']['сообщение']); } }); }); });
Я не знаю, как сохранить его в указанной папке. Я уже использовал Input::file('captimage')->move($destination) на контроллере, но он не работает.
1 ответ
Решение
Вы получаете только строку, а не само изображение (обычно base64
-формат). Итак, что вам нужно сделать, это отправить информацию в отдельный файл php, а затем использовать file_put_contents
сохранить изображение. Перед сохранением необходимо удалить префикс.
Таким образом, вы могли бы сделать что-то подобное: (Если вы вернетесь base64
-string):
file_put_contents('/capture/img.jpg', base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $_POST['captImage'])));
Если это не base64, пожалуйста, опубликуйте результат, так что содержание вашего captImage
-переменный.