javascript - 如何将从blob url获取的音频数据保存到mysql db中的文件系统和路径中

标签 javascript php jquery mysql ajax

嗨,我想将音频文件路径保存到数据库中,并将音频文件保存到我的上传文件夹中,这是我的代码:-

<a class="btn btn-large btn-danger" id="ahref" target="_blank" onclick="$('#audioLayerControl')[0].save($('#ahref')[0]);"><i class="icon-fire"></i> save</a>

当我单击此链接时,我录制的音频保存在下载文件夹中,我可以播放它,但我想将它保存在我的上传文件夹中,我得到这样的 blob url blob:http%3A//localhost%3A8383/0dd9e04b-d6db-4c8c-94b5-51cfb619f725这是它的脚本:-
this.save = function save(saveLink)
    {
        var url = this.toWave().toBlobUrlAsync("application/octet-stream");

       document.getElementById("ahref").src=url;    
     var final=document.getElementById("ahref").download = new Date().toISOString() + '.wav';

    };

谢谢请帮帮我。

更新 使用 Ajax 后
var blobUrl=url;    

    var xhr = new XMLHttpRequest;
xhr.responseType = 'blob';

xhr.onload = function() {
   var recoveredBlob = xhr.response;

   var reader = new FileReader;

   reader.onload = function() {
     var blobAsDataUrl = reader.result;
     window.location = blobAsDataUrl;
   };

   reader.readAsDataURL(recoveredBlob);
};

//xhr.open('GET', blobUrl);
 xhr.open('POST', 'upload.php', true);

xhr.send(blobUrl);

上传.php
<?php

error_reporting(0);

   if( isset($HTTP_RAW_POST_DATA))
   {

   echo  $cad = $HTTP_RAW_POST_DATA;

   } 

?>

输出:- blob:http%3A//localhost%3A8383/5155c610-dec6-4e60-8ef7-e14a56aa73d2
并且在浏览器 url 中是 data:text/html;base64,YmxvYjpodHRwJTNBLy9sb2NhbGhvc3QlM0E4MzgzLzUxNTVjNjEwLWRlYzYtNGU2MC04ZWY3LWUxNGE1NmFhNzNkMg==

最佳答案

我会补充:

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
就在:
xhr.open('POST', 'upload.php', true);

关于javascript - 如何将从blob url获取的音频数据保存到mysql db中的文件系统和路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527396/

相关文章:

javascript - 获取最后一个破折号和最后一个点之间的字符串

jquery - 20 秒后淡化带有图像横幅的图像部分

javascript - Chart.js 工具提示自定义

javascript - 无法调用未定义的方法 'unshift'

javascript - '...'在Javascript中是什么意思?

php - 检查 MySQL 表是否存在

php - Android 小部件在远程 View 更新时从模拟器中消失

java - 如何将数组复制到phonegap中的文件中?

PHP Mysql 进程间 TLS

jQuery 设置复选框已选中