所以在我的项目中,用户可以录制自己,然后我从我正在使用的记录器插件中获取一个 blob 文件。我试图通过codeigniter中的fileupload ajax调用将该blob上传到服务器,但我不知道如何让它工作。
这是我的javascript代码:(
recorder.exportWAV(function(blob) {
console.log(blob);
$.ajaxFileUpload({
url : "../ajax/saverecording/",
secureuri :false,
fileElementId :"geenidee",
dataType : blob.type,
data: blob.data,
success: function(data, status) {
if(data.status != 'error')
alert("hoera!");
alert(data.msg);
}
});
});
这是我在 ajax.php 控制器中的保存记录功能
public function saverecording()
{
$status = "";
$msg = "";
$file_element_name = 'komaan';
if ($status != "error")
{
$config['upload_path'] = '../../upload/audio/recordings/';
$config['allowed_types'] = 'wav';
$this->load->library('upload', $config);
if (!$this->upload->do_upload($file_element_name))
{
$status = 'error';
$msg = $this->upload->display_errors('', '');
echo 'alert("this is not working!");';
}
else
{
$data = $this->upload->data();
}
@unlink($_FILES[$file_element_name]);
}
}
$this->upload->do_upload($file_element_name) 返回 false 但为什么我不知道。有人可以帮忙吗?
谢谢!