您好我需要帮助强制下载文件 我有像这样的文件的下载链接
https://cf-media.sndcdn.com/WSIkwY864LX0.128.mp3?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLW1lZGlhLnNuZGNkbi5jb20vV1NJa3dZODY0TFgwLjEyOC5tcDMiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1MTg4Njc5MjF9fX1dfQ__&Signature=D8mLMEF87phwsYauLxjeHVuPhYYyC~rVu901PnMNJzRX1WoYEQz3-t05OVfDJD5KQPN-mt2IXIW9SEjSy8ASWkD3esS4MQ9DoRRzLmlp84Irsj65LeyonJAj-3gvi~XVEoGkcwNQgWKNDlHpT8gJmjGwgiMsRwEfH5uBfLcKd2Vw9l9DlaFEk332reKvoI3lZuNpiNktGfNsxZWDYNzI-aqg4HvB1NHomnNl4XhnoZkXCMXVhT7p4IUM6Lxi8wFjKbrhoNupVqO-BEJfv4Gc7G4VDS5Jzmhzj6o~GZn~HYpa10RB208CCwpcg8gtaouhNhkwArozMWq74PDfz4447w__&Key-Pair-Id=APKAJAGZ7VMH2PFPW6UQ
这个链接为mp3文件,当我点击它我无法下载它只是在浏览器中播放它 如果我像IDM一样设置(互联网下载管理器) 它会下载
Click here to show image from idm
我尝试在帖子中传递网址或获取但不起作用
<?php
if(isset($_POST['comment']) && !empty($_POST['comment'])){
$file = $_POST['comment'];
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$file.";");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
}
?>
答案 0 :(得分:0)
这与php无关,而是需要编辑.htaccess
文件。这将强制mp3文件下载而不是播放
<FilesMatch "\.(?i:mp3)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
还有一个想法,将其添加到.htaccess
我从here
AddType application/octet-stream .mp3
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .pdf
答案 1 :(得分:0)
尝试以下代码
if(isset($_POST['comment']) && !empty($_POST['comment'])){
$fileName = 'test.mp3';
$file = $_POST['comment'];
ob_start();
header('Content-type: audio/mpeg');
header("Content-Transfer-Encoding: Binary");
header('Content-Disposition: attachment; filename="'.basename($fileName).'"');
file_put_contents($fileName, $file);
readfile($fileName);
ob_end_flush();
}