Запись имени аудио файла в бд в конкретно данном случае
Вопрос заключается в следующем. Есть скрипт записывающий голос пользователя на сайте, нужно записать имя этого файла в базу данных(хочу понять в чем проблема с запросом), на сервер записывается без проблем, вот собственно код Код для захвата звука с микрофона пользователя
const URL = 'voice.php';
let div = document.createElement('div');
div.id = 'messages';
let start = document.createElement('button');
start.id = 'start';
start.innerHTML = 'Start';
let stop = document.createElement('button');
stop.id = 'stop';
stop.innerHTML = 'Stop';
document.body.appendChild(div);
document.body.appendChild(start);
document.body.appendChild(stop);
navigator.mediaDevices.getUserMedia({ audio: true})
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
document.querySelector('#start').addEventListener('click', function(){
mediaRecorder.start();
});
let audioChunks = [];
mediaRecorder.addEventListener("dataavailable",function(event) {
audioChunks.push(event.data);
});
document.querySelector('#stop').addEventListener('click', function(){
mediaRecorder.stop();
});
mediaRecorder.addEventListener("stop", function() {
const audioBlob = new Blob(audioChunks, {
type: 'audio/wav'
});
let fd = new FormData();
fd.append('voice', audioBlob);
sendVoice(fd);
audioChunks = [];
});
});
async function sendVoice(form) {
let promise = await fetch(URL, {
method: 'POST',
body: form});
if (promise.ok) {
let response = await promise.json();
console.log(response.data);
let audio = document.createElement('audio');
audio.src = response.data;
audio.controls = true;
audio.autoplay = true;
document.querySelector('#messages').appendChild(audio);
}
}
Код для записи файла на сервер
<?php
$link=mysqli_connect("localhost", "astig", "0L8i1K6c", "fortestprog");
$uploadDir = 'voice/';
$typeFile = explode('/', $_FILES['voice']['type']);
$uploadFile = $uploadDir . basename(md5($_FILES['voice']['tmp_name'].time()).'.'.$typeFile[1]);
if (move_uploaded_file($_FILES['voice']['tmp_name'], $uploadFile)) {
$response = ['result'=>'OK', 'data'=>'../'.$uploadFile];
} else {
$response = ['result'=>'ERROR', 'data'=>''];
}
echo json_encode($response);
mysqli_query($link, "INSERT into users (audiof) values (".$_FILES['voice']['tmp_name'].")");
?>