Board logo

Title: 啊全,请帮我看看以下程序。 [Print this page]

Author: sky999    Time: 2022-11-21 17:00     Title: 啊全,请帮我看看以下程序。

我在开发以个AJAX上传语音的php程序。 程序1、 上传前端页面 代码如下: Recorder H5 QuickStart: 快速入门
Recorder H5 QuickStart: 快速入门 GitHub | Gitee
更多Demo: Recorder H5 H5 vue H5 ts Demo列表(可编辑) 切换到老版本测试

Author: sky999    Time: 2022-11-21 17:00

以上代码录音是没有问题,接收上传的页面代码如下: 0) { echo "错误:: " . $_FILES["upfile"]["error"] . "
"; } else { echo "上传文件名: " . $_FILES["upfile"]["name"] . "
"; echo "文件类型: " . $_FILES["upfile"]["type"] . "
"; echo "文件大小: " . ($_FILES["upfile"]["size"] / 1024) . " kB
"; echo "文件临时存储的位置: " . $_FILES["upfile"]["tmp_name"] . "
"; // 判断当期目录下的 upload 目录是否存在该文件 // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777 if (file_exists("upload/" . $_FILES["upfile"]["name"])) { echo $_FILES["upfile"]["name"] . " 文件已经存在。 "; } else { // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下 move_uploaded_file($_FILES["upfile"]["tmp_name"], "upload/" . $_FILES["upfile"]["name"]); echo "文件存储在: " . "upload/" . $_FILES["upfile"]["name"]; } } } else { echo "非法的文件格式"; } ?>
Author: sky999    Time: 2022-11-21 17:01

但我的代码上传不成功,所以想请你帮我看看那里写错了?
Author: chnzbq    Time: 2022-11-21 17:03

if ((($_FILES["upfile"]["type"] == "image/gif") || ($_FILES["upfile"]["type"] == "image/jpeg") || ($_FILES["upfile"]["type"] == "image/jpg") || ($_FILES["upfile"]["type"] == "image/pjpeg") || ($_FILES["upfile"]["type"] == "image/x-png") || ($_FILES["upfile"]["type"] == "audio/mpeg") || ($_FILES["upfile"]["type"] == "image/png")) 这段是什么东西?
Author: sky999    Time: 2022-11-21 17:03

整套程序的源代码

Att: Recorder-master.zip (2022-11-21 17:03, 5.06 M) / Number of times this attachment has been downloaded 60
http://cloud.caffz.com:12345/mud/AbyssalSwamp/index/attachment.php?aid=632
Author: sky999    Time: 2022-11-21 17:04



QUOTE:
原帖由 chnzbq 于 2022-11-21 17:03 发表 if ((($_FILES == "image/gif") || ($_FILES == "image/jpeg") || ($_FILES == "image/jpg") || ($_FILES == "image/pjpeg") || ($_FILES == "image/x-png&quo ...
这是一个例子,用于甄别上传文件的类型。 我在这里copy的 https://www.runoob.com/php/php-file-upload.html
Author: sky999    Time: 2022-11-21 17:04

你帮我改改,我想能上传成功。
Author: chnzbq    Time: 2022-11-21 17:07

/***方式一:将blob文件转成base64纯文本编码,使用普通application/x-www-form-urlencoded表单上传***/ var reader=new FileReader(); reader.onloadend=function(){ var postData=""; postData+="mime="+encodeURIComponent(blob.type);//告诉后端,这个录音是什么格式的,可能前后端都固定的mp3可以不用写 postData+="&upfile_b64="+encodeURIComponent((/.+;\s*base64\s*,\s*(.+)$/i.exec(reader.result)||[])[1]) //录音文件内容,后端进行base64解码成二进制 //...其他表单参数 var xhr=new XMLHttpRequest(); xhr.open("POST", api); xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.onreadystatechange=onreadystatechange("上传方式一【Base64】"); xhr.send(postData); }; reader.readAsDataURL(blob); /***方式二:使用FormData用multipart/form-data表单上传文件***/ var form=new FormData(); form.append("upfile",blob,"recorder.mp3"); //和普通form表单并无二致,后端接收到upfile参数的文件,文件名为recorder.mp3 //...其他表单参数 var xhr=new XMLHttpRequest(); xhr.open("POST", api); xhr.onreadystatechange=onreadystatechange("上传方式二【FormData】"); xhr.send(form); 这几段代码 可能 存在问题
Author: sky999    Time: 2022-11-21 17:08



QUOTE:
原帖由 chnzbq 于 2022-11-21 17:07 发表 /***方式一:将blob文件转成base64纯文本编码,使用普通application/x-www-form-urlencoded表单上传***/ var reader=new FileReader(); reader.onloadend=function(){ ...
你能修改一下吗 我想用方法2上传。 如果难就算了,我重新找个例子。
Author: sky999    Time: 2022-11-21 17:10

啊全,这个让我处理吧。我找到方式了
Author: chnzbq    Time: 2022-11-21 17:12

无麦克风,无法运行该项目。
Author: sky999    Time: 2022-11-21 17:22



QUOTE:
原帖由 chnzbq 于 2022-11-21 17:12 发表 无麦克风,无法运行该项目。
我自己处理吧。




Welcome AbyssalSwamp (http://cloud.caffz.com:12345/mud/AbyssalSwamp/index/) caffz.com