2017-03-01 136 views
0

我有两个问题,一个是我无法循环播放歌曲(我在HTML中的音频标记中尝试过),两个是:无法加载资源:net :: ERR_CONTENT_LENGTH_MISMATCH。加载资源失败:net :: ERR_CONTENT_LENGTH_MISMATCH(php error)

其他信息: 这些文件托管在cPanel上。 我也有其他JavaScript文件在音频标签所在的HTML文件中,有时当我重新加载时,该错误对javascript有问题。 CSS,PHP和JS文件也在同一个HTML文件中调用(如果有要求的话) 另外一切都通过HTTPS传输。

我想要完成的是使用PHP脚本在网页上播放音乐。该脚本从目录中提取mp3,mp4和m4a文件,而不必为了方便绘制数组。我的朋友让我这个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测试这一点,我没有得到这个错误: (无法加载资源:净:: ERR_CONTENT_LENGTH_MISMATCH) ,并在我的example.com/audio/music.php文件中说这是问题。 但音频也不会循环。 我的朋友也在Brave和他的Chrome版本中进行了测试,但在我的Chrome版本中,我遇到了这个问题。

我已经问了几个人,他们似乎无法弄清楚为什么这不起作用。我在这里查看了一些关于类似问题的帖子,似乎无法解决他们的建议。

我是一个在PHP的noobie,所以如果你可以帮助指导我如何解决它在哪里添加,替换或删除代码请告诉我在哪里。

感谢您的时间,希望我们能够得到这个工作。

回答

0

生成此错误的问题出现在我的PHP脚本中。

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

由于我不太了解PHP,我假定使用$ local_file而不是$ rand,它会检查与脚本需要拉取的文件在同一目录中的文件大小。 ('Content-Length:'.filesize($ local_file))如果你遇到这个问题,并且你有一个像我这样的头文件引发问题,并抛出相同的错误代码,请尝试使用$ local_file或者这里是完整的头文件: header ;

相关问题