php - 使用jwagener的recorder.js和recorder.swf将音频记录上传到服务器

标签 php audio

我正在尝试在客户端录制音频,并将其运送到服务器进行处理。
我已经成功地能够在客户端录制和播放音频。我需要将信息发布到服务器时出现问题。

我正在使用jwageners的recorder.js:https://github.com/jwagener/recorder.js#readme

我在网站的主目录中有一个crossdomain.xml文件。内容如下

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*" secure="false"/>
</cross-domain-policy>

根据他的文档的发帖请求如下所示:
  function upload(){
     Recorder.upload({
        method: "POST",                            
        url: "http://localhost/fagaudio/recorder/recorder_server.php",  
        audioParam: "audiofile",           
         params: {                                  
           "name": "test.wav",
         },
        success: function(responseText){           
            alert(responseText); 
        },
        error: function(){                  

        }
      });
  }

在服务器端(recorder_server.php),我正在尝试如下操作:
print_r($_POST);
$name = $_POST['name'];
$content = file_get_contents('php://input');
$fh = fopen("audio/".$name, 'w') or die("can't open file");
fwrite($fh, $content);
fclose($fh);

print_r语句返回以下内容:

数组
(
[名称] => test.wav
[文件名] => audio.wav
[上传] =>提交查询
)

似乎没有任何原始php发布数据,并且文件被保存为空。我在做什么显然有问题吗?我已经使用WAMI记录器进行了尝试,但效果很好,但问题是我需要能够通过javascript将信息发布到服务器,而wami会在每次记录后自动执行此操作。

预先感谢您的任何帮助或输入。另外,如果有人熟悉那里的其他免费Javascript / Flash记录器,请指出我的方向。我已经在堆栈溢出中搜索了一些建议。

最佳答案

尝试将以下代码转换为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;
 }

  print ($saved ? "Saved" : 'Not saved');

exit;

关于php - 使用jwagener的recorder.js和recorder.swf将音频记录上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285890/

相关文章:

python - 音频信号在字级边界处分离

ios - 视频不再录制音频 (PBJVision/AVFoundation)

audio - Mlt Melt 将音轨添加到视频

PHP根据两行从数据库中检索不同的数据

php - 为了存储结果,我应该存储在 MySQL 还是 .txt 中?

php - Laravel DomPDF Google 字体未加载

c# - 使用FMOD查找以Hz为单位的频率

php - 无法删除用 PHP 创建的目录或文件(又名权限 hell )

php - 具有多个 FROM 表的 TableGateway

audio - 如何将音频嵌入到 Jekyll 博客中?