2013-05-29 31 views
5

Używam Recorder.js, który pozwala użytkownikom tworzyć własne nagranie dźwiękowe z ich wejścia mikrofonowego. Jestem na to nowy, więc jako punkt odniesienia używam this site.Wysyłanie nagranego pliku audio do serwera WWW z PHP

Kod ten tworzy pobrania pliku .wav:

<html> 
    <head> 
     <script src="js/recorderjs/recorder.js"></script> 
     <script src="js/main.js"></script> 
     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    </head> 

    <body> 
     <img id="record" src="mic.png" onclick="toggleRecording(this);"><br> 

     <img src="save.svg" onclick="saveAudio();"> 

     <form action="savefile.php" method="post"> 
      <input type="submit" value="Submit"> 
     </form> 
    </body> 
</html> 

ten uruchamia i zatrzymuje nagrywanie:

<img id="record" src="mic.png" onclick="toggleRecording(this);"> 

I ten pobiera plik .wav ze skryptu recorder.js:

<img src="save.svg" onclick="saveAudio();"> 

Używam tego skryptu PHP, aby wypróbować i zapisać plik .wav t O katalogu audio /:

<?php 

$save_folder = dirname(__FILE__) . "/audio"; 
if(! file_exists($save_folder)) { 
    if(! mkdir($save_folder)) { 
     die("failed to create save folder $save_folder"); 
    } 
} 

$key = 'filename'; 
$tmp_name = $_FILES["audiofile"]["tmp_name"]; 
$upload_name = $_FILES["audiofile"]["name"]; 
$type = $_FILES["audiofile"]["type"]; 
$filename = "$save_folder/$upload_name"; 
$saved = 0; 
if(($type == 'audio/x-wav' || $type == 'application/octet-stream') && preg_match('/^[a-zA-Z0-9_\-]+\.wav$/', $upload_name)) { 

    $saved = move_uploaded_file($tmp_name, $filename) ? 1 : 0; 
} 

?> 

Teraz, co mam nadzieję na to, aby ktoś mi pomóc ze skryptu PHP, który prześle pliki .wav do folderu/dźwięku zamiast użytkownik pobrać plik.

Każda pomoc w tej sprawie byłaby bardzo doceniana.

+1

Hi Enijar, jesteś w stanie zapisać nagrany plik na serwerze. Jak to zrobiłeś. czy możesz podzielić się tym kodem? Dziękuję – Nitin

+0

proszę, udostępnij ten kod. – Nitin

Odpowiedz

4

Wydaje mi się, że nie można używać pól pól odwykłych http, ponieważ oczekują ścieżki lokalnej. Możesz spróbować przesłać z AJAX.

var req = null; 
var url = "savefile.php"; 
var data = "": // you have to check how to get the data from your saveAudio() method 

(window.XMLHttpRequest) ? req = new XMLHttpRequest() : (window.ActiveXObject) ? req = new ActiveXObject("Microsoft.XMLHTTP") : req = false; 
req.open(method, url, true); 
req.setRequestHeader("Content-Type", "multipart/form-data"); 

if(data != null && data != "") 
{ 
    req.setRequestHeader("Content-length", data.length); 
    req.send(data); 
} 

Ty yust trzeba dowiedzieć się, w jaki sposób można uzyskać filecontent z funkcją saveAudio() i wypełnić go do zmiennej data.

A może to pomoże Ci zbyt uploading files with ajax

Powiązane problemy