2013-05-29 15 views
5

Ich benutze Recorder.js, die Benutzer ihre eigene Tonaufnahme von ihrem Mikrofoneingang erstellen können. Ich bin neu, also verwende ich this site als Bezugspunkt.Send Recorded Audiodatei an Web Server Mit PHP

Dieser Code erstellt eine herunterladbare .wav-Datei:

<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> 

Das startet und stoppt die Aufnahme:

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

Und diese lädt die .wav-Datei aus dem recorder.js Skript:

Ich verwende dieses PHP-Skript, um zu versuchen, die .wav-Datei t zu speichern o/Audio-Verzeichnis:

<?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; 
} 

?> 

Nun, was ich hoffe, ist mir jemand mit einem PHP-Skript zu helfen, die die .wav-Dateien in den Ordner/Audio-uploads stattdessen der Benutzer mit der Datei herunterladen.

Jede Hilfe mit diesem würde sehr geschätzt werden.

+1

Hallo Enijar, können Sie die aufgenommene Datei auf dem Server speichern. Wie hast du das gemacht. kannst du bitte diesen Code teilen. Danke – Nitin

+0

bitte teilen Sie diesen Code. – Nitin

Antwort

4

Ich denke, Sie können nicht alle http-Dateifelder verwenden, weil sie einen lokalen Pfad erwarten. Sie könnten einen Upload mit AJAX versuchen.

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); 
} 

Sie yust brauchen, um herauszufinden, wie Sie den filecontent von Ihrer saveAudio() Funktion erhalten können und in die data Variable füllen.

Und vielleicht kann dies helfen Ihnen auch uploading files with ajax