zoukankan      html  css  js  c++  java
  • PHP 使用 header 方式实现文件下载功能

    header() 函数向客户端发送原始的 HTTP 报头。

    下载文件要用的的请求头:

    header("Content-type:application/octet-stream");
    header("Accept-Ranges:bytes");
    header("Accept-Length:" . $file_Size);
    header("Content-Disposition:attachment;filename=" . $filename);
    
    • content-type: 文件类型
    • Accept-Ranges: 表示接收数据的类型或者范围,图片属于二进制的东西所以需要使用字节的方式传输
    • Accept-Length: 表示接收的文件大小,php 文件下载需要告诉浏览器下载的文件有多大
    • Content-Disposition: 附件只需要把文件名给过去就可以,这个名称就是下载时显示的文件名称

    文件名是中文的话,需要注意转码

    $filename = iconv("UTF-8", "GB2312", $filename);

    具体实现代码如下:

    $file = $_GET['file'];
    if(file_exists($file)){
    	header("Content-type:application/octet-stream");
    	$filename = iconv("UTF-8", "GB2312", basename($file));
    	header("Content-Disposition:attachment;filename=" . $filename);
    	header("Accept-ranges:bytes");
    	header("Accept-length:".filesize($file));
    	readfile($file);
    } else {
    	echo "<script>alert('文件不存在')</script>";
    }
    
  • 相关阅读:
    【UNIX环境高级编程】线程同步
    死锁
    Shell Script的默认变量
    高通平台读写nv总结
    PLMN概念和应用设置
    win10间歇性的找不到usb设备
    (转)查询或修改iPhone的短信服务中心号码(iOS通用)
    (转)CS域和PS域
    SSL&HTTPS简单介绍
    WAV和PCM的关系和区别
  • 原文地址:https://www.cnblogs.com/Cecil_1995/p/11049706.html
Copyright © 2011-2022 走看看