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

    c
    <?php
    
      require"a.php";
      header("Content-type:text/html;charset=utf-8");
      //接收要下载的文件名字
      $file_name=$_REQUIRE[''];
      //调用
      down_fille($file_name,"/xxx/xxx/");
    
    
    
    ?>
    
    
    
    
    b
    <?php
     header("Content-type:text/html;charset=utf-8");
      <a href='b.php?filename=sun.jpg'>点击下载</a><img src='sun.jpg'/><br/>
    
    ?>
    
    
    a
    <?php
    
        //对函数的说明
        //1.参数说明$file_name  文件名
           //     $file_sub_dir:下载文件子路径     '"/xxx/xxx/"'
        function down_file($file_name,$file_sub_patth){
        //死去活来,演示下载一个图片
        //如果文件是中文的
    
        //$file_name="san.jpg";
        //原因PHP文件函数比较老,需要中文转码   gb2312
        $flie_name=iconv("utf-8","gb2312",$file_name);
    
        //路径
        //$file_path="./文件名/".$file_name;
        //如果你希望使用绝对路径
        //$file_path=$_SERVER['DOCUMENT_ROOT']."./文件名/".$file_name;
    
        
        //1打开文件
        if(!file_exists($file_name)){
        echo "文件不存在!";
        return;
        
    }
        $fp=foper($file_name,"r");
        //获取下载文件的大小
        $file_size=filiesize($file_nsme);
      //超过多少就不能下载了
      if($file_soze>10*102481024){
      echo "<script language='javascript'>window,alert('文件过大')</script>";
      return;
    }
    
    
        //返回的文件
        header("cache-control:application/octet-stream");
        //按照字节大小返回
        header("Accept-Ranges:bytes");
        //返回文件大小
        header("Accept-Leagth:$file_size");
        //这里客户端弹出对话框,对应的文件名
        header("Content-Didposition:attachment;filename=".$file_name);
    
        //向客户端回送数据
        $buffer="1024";
        //为了下载安全,我们最好做一个文件字节读取计数器
        $file_count=0;
        //这句话判断文件是否结束
        while(!feof($fp)&& ($file_size-$file_count>0)){
        $file_date=fread($fp,$buffer);
        //统计多少个字节
        $file_count+=$buffer;
        //把部分数据回送给浏览器
        echo $file_deta;
    
    }
        //关闭文件
        fclose($fp);
    
    
    }
    
        //测试函数
        down_file(名字,"/xxx/xxx/");
    
    ?>
  • 相关阅读:
    10.16 NOIP模拟赛
    10.14 牛客提高集训营5
    10.12 正睿普及4
    Codeforces Round #516 (Div. 2) (A~E)
    hihoCoder.1509.异或排序(位运算 思路)
    hihoCoder.1513.小Hi的烦恼(bitset 五维偏序)
    hihoCoder挑战赛19 A.Rikka with Sequence(状压DP)
    BZOJ.3668.[NOI2014]起床困难综合症(贪心)
    BZOJ.4903.[CTSC2017]吉夫特(Lucas DP)
    BZOJ.3329.Xorequ(数位DP)
  • 原文地址:https://www.cnblogs.com/xujing6/p/6020708.html
Copyright © 2011-2022 走看看