• PHP 上传与下载


    1 upload

        $_FILES 超全局数组,包含了有关上传文件的所有信息!
        而且,这个数组中只包含文件相关信息,其他数据依然在$_POST里面。
          $_FILES 是一个二维数组,每上传一个文件,都是数组的一个子数组。每个子数组包含信息如下:
          'name' => string 'ch05-数据库对象.ppt' (上传文件名)
          'type' => string 'application/vnd.ms-powerpoint' (上传文件所属的MIME类型)
          'tmp_name' => string 'E:Toolswamp64 mpphpDEC9.tmp' (文件上传后,在服务器存储的缓存文件地址)
          'error' => int 0 (出现的错误信息,0表示没有错误)
          'size' => int 836096 (上传文件的大小)
       
          error常见的值:
          0 没有任何错误
          1 超过服务器限制大小。  php.ini文件的upload_max_filesize;
          2 超过客户端限制大小。 表单中的隐藏域name="MAX_FILE_SIZE"限制的大小
          3 文件只被上传了一部分、
          4 没有上传文件

        var_dump($_FILES);
        
        foreach ($_FILES as $key => $value) {
            //取到文件名,并用.分隔为数组
            $nameArr = explode(".", $_FILES[$key]["name"]);
            //从上述数组中,取到最后一个,就是上传文件的后缀名
            $houzhiming = $nameArr[count($nameArr)-1];
            //使用当前时间+随机数的方式,随机生成一个文件名
            $filename = date("YmdHis").rand(100,999).".".$houzhiming;
            // 判断myFile里面的临时文件,是不是上传过来的。
            if(is_uploaded_file($_FILES[$key]["tmp_name"])){
                // 将临时文件,移动到服务器www根目录下的upload文件夹中。
                // 如果成功返回true,否则返回false
                $isOk = move_uploaded_file($_FILES[$key]["tmp_name"],$_SERVER['DOCUMENT_ROOT']."/upload/".$filename);
                if(!$isOk){
                    echo("文件【{$_FILES[$key]["name"]}】上传失败,无法移动到指定目录下!!");
                    continue;
                }
            }else{
                echo("文件【{$_FILES[$key]["name"]}】上传的文件不是合法上传的!");
                continue;
            }
            
            echo "文件【{$_FILES[$key]["name"]}】上传成功!!!<br>";
        }
    2 download

       这段代码虽然自己写不简单但是我们可以用现成的,所以也就是多复杂了

        //文件下载练习
        $filename="./upload/aa.png";
        $basename=pathinfo($filename);
        header("Content-Type: image/png"); //指定下载文件类型的
        header("Content-Disposition:attachment;filename=".$basename["basename"]);//指定下载文件的描述信息
        header("Content-Length:".filesize($filename));  //指定文件大小的
        readfile($filename);//将内容输出,以便下载。
  • 相关阅读:
    java基础知识复习
    css打对勾
    jqgrid显示一行的详情
    jqgrid在colModel中多次调用同一个字段值
    software architecture slide 2
    software architecture slide 1
    英语冷笑话
    单复同形
    量子力学为什么翻译成quantum,或者说quantum为什么翻译成量子力学
    To YOU
  • 原文地址:https://www.cnblogs.com/c-hl/p/7047088.html
Copyright © 2020-2023  润新知