2013-05-29 4 views
5

Я использую Recorder.js, который позволяет пользователям создавать свою собственную звукозапись с микрофона. Я новичок в этом, поэтому я использую this site в качестве ориентира.Отправка записанного аудиофайла на веб-сервер с помощью PHP

Этот код создает загружаемый .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);"> 

И это загружает файл .wav из сценария recorder.js:

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

Вы ЮСТ должны выяснить, как вы можете получить filecontent от вашей saveAudio() функции и заполнить его в переменную data.

А может быть, это может помочь вам тоже uploading files with ajax

Смежные вопросы