强制从url下载文件(声音,视频)和文件使用php

时间:2018-02-17 11:52:17

标签: php download

您好我需要帮助强制下载文件 我有像这样的文件的下载链接

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;
    }
?>

2 个答案:

答案 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();
}
相关问题