通过ajax传递Blob来生成一个文件

我试图捕获audiorecorder( https://github.com/cwilso/AudioRecorder )并通过Ajax发送blob一个PHP文件,这将接收blob内容并创build文件(在这种情况下的形文件)。

Ajax调用:

audioRecorder.exportWAV(function(blob) { var url = (window.URL || window.webkitURL).createObjectURL(blob); console.log(url); var filename = <?php echo $filename;?>; $.ajaxFileUpload({ url : "lib/vocal_render.php", secureuri :false, dataType : blob.type, data: blob, success: function(data, status) { if(data.status != 'error') alert("boa!"); } }); }); 

和我的PHP文件(vocal_render.php):

 <?php if(!empty($_POST)){ $data = implode($_POST); //transforms the char array with the blob url to a string $fname = "11" . ".wav"; $file = fopen("../ext/wav/testes/" .$fname, 'w'); fwrite($file, $data); fclose($file); }?> 

PS:我是新手blobs和ajax。 提前致谢。

One Solution collect form web for “通过ajax传递Blob来生成一个文件”

尝试上传文件作为表单数据

 audioRecorder.exportWAV(function(blob) { var url = (window.URL || window.webkitURL).createObjectURL(blob); console.log(url); var filename = <?php echo $filename;?>; var data = new FormData(); data.append('file', blob); $.ajax({ url : "lib/vocal_render.php", type: 'POST', data: data, contentType: false, processData: false, success: function(data) { alert("boa!"); }, error: function() { alert("not so boa!"); } }); }); 

 <?php if(isset($_FILES['file']) and !$_FILES['file']['error']){ $fname = "11" . ".wav"; move_uploaded_file($_FILES['file']['tmp_name'], "../ext/wav/testes/" . $fname); } ?> 
  • 如何检查一个表单是否有效使用jQueryvalidation插件程序化
  • 如何在jQuery中设置文本框的值
  • 你可以检测到“拖”在jQuery?
  • JavaScript / jQuery通过POST和JSON数据下载文件
  • 带有序列化和额外数据的jQuery post()
  • jQuery Popup Bubble / Tooltip
  • 防止contenteditable在ENTER上添加<div> - Chrome
  • 确定JavaScript的值是否是一个“整数”?
  • 如何使用jQuery从一个元素的px顶部find垂直距离
  • jQuery:live()vs delegate()
  • dynamic创buildBootstrap CSS警报消息