2013-05-29 49 views
5

我使用Recorder.js,它允許用戶從他們的麥克風輸入創建自己的錄音。我是新手,所以我使用this site作爲參考。用PHP發送錄製的音頻文件到Web服務器

此代碼創建一個可下載的.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> 

這將啓動和停止錄音:

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

而這個下載從recorder.js腳本.wav文件:

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

我正在使用此PHP腳本嘗試保存.wav文件t ○/音頻目錄:

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

?> 

現在,我希望的是有人幫我用PHP腳本上傳.wav文件的文件夾/音頻,而不是讓用戶下載的文件。

任何幫助,這將不勝感激。

+1

嗨Enijar,您是否能夠錄製文件保存在服務器上。你是怎麼做到的。你能分享一下這個代碼嗎?謝謝 – Nitin

+0

請分享該代碼。 – Nitin

回答

4

我認爲你不能使用usuall http文件字段,因爲他們期望一個本地路徑。 您可以嘗試使用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); 
} 

您yust需要找出如何從你的saveAudio()功能得到filecontent並填寫進入data變量。

也許這也可以幫助你uploading files with ajax

相關問題