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/");
    
    ?>
  • 相关阅读:
    docker 容器启动时设置环境变量source
    解决docker容器中Centos7系统的中文乱码
    Python 常用的标准库以及第三方库有哪些?
    excel 两列值匹配取另外一列值 INDEX MATCH 函数
    Dockerfile编写,以及设置一个自启动脚本
    主机、Docker时间与时区设置总结
    CentOS安装scp命令
    Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)
    yum 安装 tomcat
    Docker退出容器不关闭容器的方法
  • 原文地址:https://www.cnblogs.com/xujing6/p/6020708.html
Copyright © 2011-2022 走看看