我需要用户录制语音片段。我正在使用wami-recorder来处理客户端的录音。我正在使用默认的javascript函数:
Wami.startRecording('/upload?name=mysound.wav');
Wami.stopRecording();
在Chrome控制台中,我可以看到发送请求成功发送,因为当我使用wami-recorder默认网址"https://wami-recorder.appspot.com/audio"
时,它可以正常工作。但我似乎无法在后端收到文件,Sinatra。我如何获取文件并存储它?有人能指出我正确的方向吗?
这是我的控制者:
post "/upload" do
p params
end
输出只是:
{"name"=>"file.wav"}
答案 0 :(得分:1)
音频作为原始身体的一部分发布。我能够使用
将文件保存在rails中
request.raw_post
在一些简短的谷歌上看来,你应该能够在sinatra中做同样的事情
request.env["rack.input"].read
然后,您可以将其直接保存到文件
file = File.new("audio.wav", "w+b")
file.write request.env["rack.input"].read
file.close
这应该在同一目录中保存一个wav文件