doujiexi1824 2014-08-10 06:38
浏览 19
已采纳

too long

i wrote a download script that find a restricted file from server and after reading that, prepare the file for user to download it with the following headers.

header('Content-Type: application/octet-stream');
header("Content-Length: $filesize");
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Accept-Ranges: bytes');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

but sometimes with default browsers download managers, it returns download-file.php instead of filename!

for example it should return abc.zip but it returns download-file.php and download process works perfectly

any help will be appreciated

  • 写回答

1条回答 默认 最新

  • dsjpik057730 2014-08-10 06:45
    关注

    Since I don't know how you're using $file or $filesize try this instead:

    $file = "abc.zip"; // adjust accordingly
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=".basename($file));
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($file));
    header("Content-Description: File Transfer");
    @readfile($file);
    exit();
    

    plus, a missing readfile()

    This line:

    header("Content-Length: $filesize");
    

    should read as:

    header("Content-Length: ".filesize($file)); // or $filesize in your case.
    

    Missing filesize()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)