Как загрузить изображение base64 в WordPress с веб-камеры.js

Я столкнулся с некоторыми проблемами с кодом, и я надеялся, что кто-то может принести немного света 🙂

Я использую webcamjs в проекте, который похож на небольшой CRM на веб-сайте WordPress. Я создал форму, используя ACF, и мы заполняем формы из внешнего интерфейса веб-сайта, который виден только зарегистрированным пользователям.

На странице участников мне нужно иметь возможность сделать снимок с веб-камеры, и пока у меня есть веб-камера, работающая и создающая изображение base64.

Что мне нужно сделать сейчас, так это уметь загружать это изображение в каталог загрузки в WordPress и прикреплять ссылку на изображение к полю «фотография» с помощью плагина ACF, чтобы вся информация собиралась вместе. Но эта часть не работает.

Интересно, правильно ли я вызываю файл PHP из кода JS и собирается ли информация из JS в файл PHP.

Любая помощь высоко ценится!

<script language="JavaScript">
Webcam.set({
width: 640,
height: 480,
image_format: 'jpeg',
jpeg_quality: 90
});
Webcam.attach( '#members_camera' );

function take_snapshot() {
// take snapshot and acquire image data
Webcam.snap( function(data_uri) {
// snap complete, image data is in 'data_uri'

Webcam.on( 'uploadProgress', function(progress) {
// Upload in progress
// 'progress' will be between 0.0 and 1.0
} );

Webcam.on( 'uploadComplete', function(code, text) {

location.reload();

// Upload complete!
// 'code' will be the HTTP response code from the server, e.g. 200
// 'text' will be the raw response content
} );

var postid = '<?php echo $postid ?>';
var url = '<?php echo get_stylesheet_directory_uri() . '/inc/webcam/uploader.php?postid='; ?>' + postid;

Webcam.upload( data_uri, url, function(code, text) {
// Upload complete!
// 'code' will be the HTTP response code from the server, e.g. 200
// 'text' will be the raw response content
} );
} );
}
</script>

Это файл «uploader.php»

require_once("../../../../../wp-load.php");

$name = date('YmdHis');
$imagename = $_SERVER['DOCUMENT_ROOT']."/wp-content/uploads/members_photos/".$name.".jpg";
move_uploaded_file($_FILES['webcam']['tmp_name'], $imagename);

$postid = $_GET['postid'];
update_field('foto', $imagename, $postid);

echo $postid;
echo $imagename;

0

Решение

Я понял!

Проблема была с моим файлом «uploader.php». Теперь это выглядит так:

require_once('../../../../../wp-load.php');

$name = date('YmdHis');
$upload_dir = wp_upload_dir();
$imagename = $upload_dir['basedir'] . '/members_photos/' . $name . '.jpg';

move_uploaded_file($_FILES['webcam']['tmp_name'], $imagename);

$home_url = home_url();
$member_pic_url = $home_url . '/wp-content/uploads/members_photos/' . $name . '.jpg';

$postid = $_GET['postid'];
update_field('foto', $member_pic_url, $postid);

Я также должен был пойти и создать каталог вручную. Так что, если у кого-то есть лучшее решение, я открыт для него 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]