强制下载使用readfile无法正常工作

时间:2017-03-29 21:59:35

标签: php

这是一个index.php

<form action="verify.php" method="post" target="_blank">
        <input name="filename" type="hidden" value="media.mp4"><p></p>
        <input name="filesize" type="hidden" value="10 MB">
        <div align="center">
            <input alt="Download" src="download.png" type="image" width="225">
        </div>
</form>

这是一个verify.php

<meta http-equiv="refresh" content="5; url=download.php?file=<?php echo $file; ?>">

这是一个download.php

<?php
$file = $_GET['file'];
header('Content-type: video/mp4');
header('Content-Disposition: attachment; filename="uploads/' . $file . '"');
?>

并且媒体文件存储在uploads目录中,此代码需要强制mp4下载,遗憾的是它没有从正确的路径下载。

这是控制台中的输出:/download.php?file = media.mp4&#34;。

为了使其工作,它应该是/uploads/media.mp4 ...请帮忙!告诉我我做错了什么?

2 个答案:

答案 0 :(得分:0)

根据PHP Documentation

// This line is where you put the name of the file the client will be receipt
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// This line is where you define which file you will send to the client
readfile('original.pdf');

答案 1 :(得分:0)

如果您希望文件的“输出”具有相同的“名称”,请复制此代码

<?php
$file = $_GET['file'];
header('Content-type: video/mp4');
header('Content-Disposition: attachment; filename="' . $file . '"');
readfile("uploads/" . $file);
?>

其他:

<?php
$file = $_GET['file'];
header('Content-type: video/mp4');
header('Content-Disposition: attachment; filename="[the name the file]"');
readfile("uploads/" . $file);
?>