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/");
    
    ?>
  • 相关阅读:
    数数小木块
    Triangular Sums
    Financial Management
    阶乘因式分解(一)
    另一种阶乘问题
    韩信点兵
    Fibonacci数
    A+B Problem
    16进制的简单运算
    浅谈数据库之事务
  • 原文地址:https://www.cnblogs.com/xujing6/p/6020708.html
Copyright © 2011-2022 走看看