jquery - llenar - Pase Blob a través de ajax para generar un archivo
select html en php (2)
Intente cargar el archivo como datos de formulario
audioRecorder.exportWAV(function(blob) {
var url = (window.URL || window.webkitURL).createObjectURL(blob);
console.log(url);
var filename = <?php echo $filename;?>;
var data = new FormData();
data.append(''file'', blob);
$.ajax({
url : "lib/vocal_render.php",
type: ''POST'',
data: data,
contentType: false,
processData: false,
success: function(data) {
alert("boa!");
},
error: function() {
alert("not so boa!");
}
});
});
.
<?php
if(isset($_FILES[''file'']) and !$_FILES[''file''][''error'']){
$fname = "11" . ".wav";
move_uploaded_file($_FILES[''file''][''tmp_name''], "../ext/wav/testes/" . $fname);
}
?>
Estoy tratando de capturar audiocorrección ( https://github.com/cwilso/AudioRecorder ) y enviar el blob a través de Ajax un archivo php, que recibirá el contenido blob y creará el archivo (el archivo wave en este caso).
Llamada Ajax:
audioRecorder.exportWAV(function(blob) {
var url = (window.URL || window.webkitURL).createObjectURL(blob);
console.log(url);
var filename = <?php echo $filename;?>;
$.ajaxFileUpload({
url : "lib/vocal_render.php",
secureuri :false,
dataType : blob.type,
data: blob,
success: function(data, status) {
if(data.status != ''error'')
alert("boa!");
}
});
});
y mi archivo php (vocal_render.php):
<?php
if(!empty($_POST)){
$data = implode($_POST); //transforms the char array with the blob url to a string
$fname = "11" . ".wav";
$file = fopen("../ext/wav/testes/" .$fname, ''w'');
fwrite($file, $data);
fclose($file);
}?>
PD: Soy novato con blobs y ajax. Gracias por adelantado.
De acuerdo con la documentación , al usar XMLHttpRequest.send()
puede usar el objeto Blob
directamente.
var blob = new Blob(chunks, { ''type'' : ''audio/webm'' });
var xhr = new XMLHttpRequest();
xhr.open(''POST'', ''/speech'', true);
xhr.onload = function(e) {
console.log(''Sent'');
};
xhr.send(blob);
He intentado esto y funciona como un encanto.