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();
  • 相关阅读:
    react: redux-devTools
    react: menuService
    react: navigator
    react style: 二级菜单
    spark复习笔记(5):API分析
    spark复习笔记(4):spark脚本分析
    maven 打包Scala代码到jar包
    spark复习笔记(3)
    mongoDB学习笔记(2)
    sparkStreaming复习笔记(1)
  • 原文地址:https://www.cnblogs.com/fps2tao/p/10709316.html
Copyright © 2011-2022 走看看