使用PHP将录制的音频文件发送到Web服务器

我正在使用Recorder.js,它允许用户通过麦克风输入创建自己的录音.我是新手,所以我使用this site作为参考点.

代码创建可下载的.wav文件

dio();">

        
PHP" method="post">

这会启动和停止录制:

这将从recorder.js脚本中下载.wav文件

dio();">

我正在使用此PHP脚本尝试将.wav文件保存到/ audio目录:

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文件上传文件夹/音频而不是让用户下载文件.

任何有关这方面的帮助将不胜感激.

最佳答案
我认为你不能使用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);
}

您需要了解如何从saveAudio()函数获取filecontent并将其填充到数据变量中.

也许这也可以帮助你uploading files with ajax

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...