0

所以在我的项目中,用户可以录制自己,然后我从我正在使用的记录器插件中获取一个 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 但为什么我不知道。有人可以帮忙吗?

谢谢!

4

1 回答 1

0

您不能修改文件输入,但可以使用 ajax 上传:

recorder.exportWAV(function(blob) {
    $.ajax( "something.php", {
        data: blob,
        processData: false,
        contentType: false,
        method: "POST",
        success: function() {

        }
    });
});
于 2012-12-08T17:36:16.150 回答