MIME类型“application/octet-stream”在我的服务器中被切换到“text/html”.如何预防


MIME Type 'application/octet-stream' is switched to 'text/html' in my server. How to prevent?

我正在尝试从服务器下载我的.mp3文件,但是当我传递下面的代码时,它会在浏览器屏幕上以二进制转换内容类型打印文件:text/html;charset=UTF-8

如果我尝试对其他服务器使用相同的代码,它使用内容类型成功运行:应用程序/八位字节流。所以我可以说代码是 100% 有效的(代码是 PHP 格式的)。

那么这个问题是在服务器配置中还是任何其他问题?请帮助我解决此问题。

<?php 
set_time_limit(0);
$url = 'https://abcdefgh.s3.amazonaws.com/audio/1431428586_z3PtL.mp3';
$file = basename($url);
$fp = fopen($file, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
?>

是的,可能是服务器配置。 首先,尝试将原始MP3上传到服务器并像 http://yourserver.com/file.mp3 一样访问它。如果可以,那么你的 php 有问题,如果你不能 - 调整服务器。