当前位置:  开发笔记 > 编程语言 > 正文

php - 如何强制下载文件?

如何解决《php-如何强制下载文件?》经验,为你挑选了2个好方法。

我想在我的一个网站上的每个视频下面添加一个"下载此文件"功能.我需要强制用户下载文件,而不是仅仅链接到文件,因为有时候开始在浏览器中播放文件.问题是,视频文件存储在单独的服务器上.

我可以用PHP强制下载任何方式吗?



1> Paolo Bergan..:

你可以尝试这样的事情:

$file_name = 'file.avi';
$file_url = 'http://www.myremoteserver.com/' . $file_name;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url);
exit;

我只是测试了它,它适用于我.

请注意,为了readfile能够读取远程URL,您需要fopen_wrappers启用它.


与此相关的缺陷是所有视频都将通过他的服务器运行.如果视频出于带宽原因位于单独的服务器上,则此解决方案将无法接受.

2> 小智..:

经过测试的download.php文件是

function _Download($f_location, $f_name){
  $file = uniqid() . '.pdf';

  file_put_contents($file,file_get_contents($f_location));

  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Length: ' . filesize($file));
  header('Content-Disposition: attachment; filename=' . basename($f_name));

  readfile($file);
}

_Download($_GET['file'], "file.pdf");

和下载的链接是

 Descargar 

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有