zoukankan      html  css  js  c++  java
  • php文件下载

    header("Content-type:text/html;charset=utf-8");
    $file_name="XXX.mp3";
    //用以解决中文不能显示出来的问题
    $file_name=iconv("utf-8","gb2312",$file_name);
    $file_sub_path=$_SERVER['DOCUMENT_ROOT']."/images/";
    $file_path=$file_sub_path.$file_name;
    //首先要判断给定的文件存在与否
    if(!file_exists($file_path)){
    echo "没有该文件";
    return;
    }
    $fp=fopen($file_path,"r");
    $file_size=filesize($file_path);
    //下载文件需要用到的头
    Header("Content-type: application/octet-stream");
    Header("Accept-Ranges: bytes");
    Header("Accept-Length:".$file_size);
    Header("Content-Length:".$file_size);
    Header("Content-Disposition: attachment; filename=".$file_name);
    
    $buffer=1024;
    $file_count=0;
    //向浏览器返回数据
    while(!feof($fp) && $file_count<$file_size){
    $file_con=fread($fp,$buffer);
    $file_count+=$buffer;
    echo $file_con;
    }
    fclose($fp);

    这代码貌似没有问题,可以正常下载,但是有时有下载的文件 不全的情况, 是因为有可能缓存区有其他数据,所以在输出前清除一下缓存区

    所以最好在循环前加

    ob_clean();
    flush();
  • 相关阅读:
    ctypes运用
    win10 下获取不到
    semantic ui加载慢的问题
    python 将图片转换为base64编码转储进数据库
    循环遍历共享文件夹,不需要知道目录深度拷贝上传
    计划和打算
    pyqt按键检测
    python B+数的实现
    JAVA算数运算符
    ASCLL码表
  • 原文地址:https://www.cnblogs.com/fps2tao/p/10709316.html
Copyright © 2011-2022 走看看