我正在使用Recorder.js,它允许用户通过麦克风输入创建自己的录音。我是新手,所以我使用this site作为参考点。
此代码创建可下载的.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文件保存到/ 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文件上传到文件夹/音频而不是让用户下载文件。
对此的任何帮助将不胜感激。
答案 0 :(得分: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);
}
您需要了解如何从saveAudio()
函数中获取文件内容并将其填入data
变量。
也许这也可以帮助你uploading files with ajax