将blob文件保存到服务器
save blob file to server
我正在尝试将录制的文件保存到服务器。为了录音的目的,我正在使用演示记录器
在录制结束时,它会给我一个指向录制文件的blob链接。所以在谷歌上搜索了一点之后,我发现我可以使用bob url来保存它。
这是一个关于拯救斑点的链接。在那之后,我试着把它下载到服务器上。
1-我得到了blob文件的链接
var data = document.getElementById("save").href
之后我在index.html文件中使用js代码发送
blob url到php代码
JS代码
<script>
function saveAudio(){
var req = null;
var url = "savefile.php";
var data = document.getElementById("save").href.toString();// document.getElementById("save").innerHTML;// = xhttp.responseText;; // you have to check how to get the data from your saveAudio() method
window.alert(data);
(window.XMLHttpRequest) ? req = new XMLHttpRequest() : (window.ActiveXObject) ? req = new ActiveXObject("Microsoft.XMLHTTP") : req = false;
req.open("POST", url, true);
req.setRequestHeader("Content-Type", "multipart/form-data");
if(data != null) //&& data != "")
{
req.setRequestHeader("Content-length", data.length);
req.send(data);
}}
</script>
PHP代码
<?php
$save_folder = dirname(__FILE__) ."/js";
if(! file_exists($save_folder)) {
if(! mkdir($save_folder)) {
die("failed to create save folder $save_folder");
}
}
$key = 'filename';
$tmp_name = $_FILES["audiofile"]["tmp_name"];
$upload_name = $_FILES["audiofile"]["name"];
$type = $_FILES["audiofile"]["type"];
$filename = "$save_folder/$upload_name";
$saved = 0;
if(($type == 'audio/x-wav' || $type == 'application/octet-stream') && preg_match('/^[a-zA-Z0-9_'-]+'.wav$/', $upload_name) ) {
$saved = move_uploaded_file($tmp_name, $filename) ? 1 : 0;
}
//name is needed to send in the php file
?>
在浏览器中编译时出现2个错误
1-拒绝设置不安全的标头"内容长度"
2-POST保存文件.php 500
我想php文件有问题!
如何处理这些错误并完成上传任务?
是否有任何开放源代码允许在不使用php的情况下直接将blob url上传到服务器
我感谢任何帮助和建议!
尝试删除该行:req.setRequestHeader("内容长度",data.length);
XMLHttpRequest不允许设置这些标头,因为这将是一个安全漏洞。500很可能是请求失败的结果。
您可以在此处阅读有关XMLHttpRequest的信息http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29方法
以下是其他一些线程,相同的问题:
通过ajax传递Blob以生成文件
javascript如何上传blob?
相关文章:
- 将JQuery Handontable保存到服务器上的excel文件中
- 如何在服务器上保存数据以备日后使用
- 正在服务器上保存降价内容
- 将处理后的图像发送到服务器进行保存
- 从Div创建图像,并使用Javascript和ASP.net将其保存到服务器
- 保存服务器中的变量
- AngularJS可以在没有任何服务器端技术的情况下将文件保存/写入服务器
- 如何上传一个XML对象并用Perl将其保存在服务器上
- 解析服务器云代码保存对象
- Python在尝试保存新的JSON文件时导致服务器错误
- 将 JSON 数据保存到服务器上
- 在将图像保存到服务器之前检查图像大小
- 缺少用于创建的模板.内部服务器错误-聚合物表单保存到数据库
- 将多维Javascript数组保存到服务器端CSV
- 在drawImage、C#、AJAX、ASP.NET之后将图像从画布保存到Web服务器
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- 将PDF文件从Node.js服务器保存到PhoneGap应用程序
- backbone.js:自上次服务器保存以来有变化吗
- 将映像从远程服务器保存到磁盘
- 如何动态地将XML文件从服务器保存到本地机器