首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对所有文件使用PHP强制下载

对所有文件使用PHP强制下载
EN

Stack Overflow用户
提问于 2012-06-04 02:00:53
回答 3查看 1.1K关注 0票数 0

我的问题是,有没有一种方法可以对所有文件类型使用头文件下载PHP方法;

代码语言:javascript
复制
    <?php

$fileid = $_GET['fid'];
$filename = $_GET['fn'];
 $auth_code = $_GET['dlauth'];
$folder = $_GET['fi'];
echo $file = $folder."/".$filename;

if (empty($fileid) || empty($filename) || empty($auth_code) || empty($folder)) {

    echo "Malformed ID, please go back and try to download again";

    } else {

        if (strlen($auth_code) > 25) {

            echo "Download session has expired or is malforned";

            }  else {






  header("Content-Disposition: attachment; filename=$filename");

  header('Content-Length: ' . filesize($file));
  header("Pragma: no-cache");
  header("Expires: 0");

  readfile($file);





                }



        }

?>

因为这样可以下载压缩文件等,完全没问题。然而,当涉及到任何其他事情时,它就会腐化。

任何人在没有使用Switch语句来确定带有文件扩展名的内容类型的情况下,都得到了任何线索。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2012-06-04 02:32:09

你真的要用PHP来做吗?如果没有,那么我建议使用.htaccess来处理这个问题:

代码语言:javascript
复制
AddType application/octet-stream .csv
AddType application/octet-stream .xls
AddType application/octet-stream .doc
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .pdf

否则,我建议将Content-Type设置为您的任何文件类型。

票数 1
EN

Stack Overflow用户

发布于 2012-06-04 02:23:03

代码语言:javascript
复制
header("Content-Disposition: attachment; filename=$filename");

应该足以在未加密的连接上强制下载。像往常一样设置Content-Type (例如image/jpeg)。其余部分不应该是必需的,也不应该由您的set服务器根据需要进行设置。

票数 0
EN

Stack Overflow用户

发布于 2012-06-04 02:34:21

可以使用文件信息扩展名来完成。

http://www.php.net/manual/en/ref.fileinfo.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10872666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档