2013-05-29 9 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ファイルを保存しようとしています。 /オーディオディレクトリoを:私が望んでいるものを

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

?> 

は、ユーザーがファイルをダウンロードしたのではなく、フォルダ/オーディオに.wavファイルをアップロードPHPスクリプトで私を助けるために誰かです。

これについてのお手伝いがあれば幸いです。

+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

関連する問題