javascript - 无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH(PHP错误)

标签 javascript php html audio

我遇到两个问题,一个是无法循环播放歌曲(我在HTML的音频标签中尝试过),另一个是:无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH。

其他信息:
这些文件托管在cPanel上。
HTML文件中还包含其他javascript文件,音频标签位于其中,有时当我重新加载它时,javascript出现了错误。
CSS,PHP和JS文件也称为同一个HTML文件(如果有关系)
同样,所有内容都通过HTTPS传输。

我要完成的工作是使用PHP脚本在网页上播放音乐。该脚本从目录中提取mp3,mp4和m4a文件,而不必为方便起见而绘制数组。我的 friend 给了我这个PHP脚本,但是我们似乎无法找出问题所在,因此我在这里寻求帮助,因为我还没有完全了解PHP。

HTML代码:

<audio autoplay="" loop="" preload="auto" id="music" src="https://example.com/audio/music.php">
<script type="text/javascript">
var audio = document.currentScript.parentElement;
audio.volume = 0.1;
</script>
</audio>

PHP文件:
<?php
$list = new RecursiveDirectoryIterator(__DIR__);
$filetypes = array('mp3', 'mp4', 'm4a');
$files = array();
foreach(new RecursiveIteratorIterator($list) as $file) {
if (in_array(strtolower(array_pop(explode('.', $file))), $filetypes))
$files[] = $file;
}
$rand = $files[array_rand($files, 1)];
header('Content-Type:'.mime_content_type($rand));
header('Content-Disposition: filename="'.basename($rand).'"');
header('Content-length: '.filesize($rand));
readfile($rand);
?>

我已经在Firefox中对此进行了测试,但没有收到此错误消息:
(无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH)
并在我的example.com/audio/music.php文件中说这就是问题所在。
但是音频也不会循环。
我的 friend 也在Brave和他的Chrome版本中对此进行了测试,但是在我的Chrome版本中,我遇到了这个问题。

我已经问了几个人,他们似乎无法弄清楚为什么这不起作用。我在此处查看了有关类似问题的几篇文章,似乎无法根据他们的建议加以解决。

我对PHP有点不满意,所以如果您可以帮助指导我如何解决它(例如在哪里添加,替换或删除代码),请告诉我在哪里。

多谢您的宝贵时间,希望我们能解决这个问题。

最佳答案

产生此错误的问题在我的PHP脚本内。

我在哪里:
header('Content-length:'.filesize($ rand));

相反,我需要:
header('Content-Length:'.filesize($ local_file));

由于我不太了解PHP,因此我假设使用$ local_file而不是$ rand它将检查与脚本需要提取的文件位于同一目录中的文件大小。

如果遇到此问题,并且遇到像我这样的 header 问题,并且抛出相同的错误代码,请尝试使用$ local_file或完整的 header :
header('Content-Length:'.filesize($ local_file));

关于javascript - 无法加载资源:net::ERR_CONTENT_LENGTH_MISMATCH(PHP错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535964/

相关文章:

javascript - 如何在 Reactjs 中使用数据目标和数据切换?

javascript - 我可以知道一个javascript文件是否已经被执行了吗?

javascript - 复选框触发事件

php - uasort 问题 - 首先输出最大值

php - 结帐时 Woocommerce 内部服务器错误

php - 日期和时间差显示30min为5

jquery - $.parseXML 不适用于有效的 xml

javascript - JS/HTML5 - 根据操作系统进行网站多版本的基本设置?

javascript - 右键单击不使用单击功能的表行

html - 删除您无权编辑的 CSS 属性