zoukankan      html  css  js  c++  java
  • 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);//将内容输出,以便下载。
  • 相关阅读:
    vue开发chrome扩展,数据通过storage对象获取
    Vue手动集成less预编译器
    Google Translate寻找之旅
    Javascript Range对象的学习
    Javascript Promises学习
    SublimeText 建立构建Node js系统
    We're sorry but demo3 doesn't work properly without JavaScript enabled. Please enable it to continue.
    npm安装包出现UNMET DEPENDENCY报错
    (转载)命令行说明中格式 尖括号 中括号的含义
    Linux重启网卡服务Failed to start LSB: Bring up/down networking.
  • 原文地址:https://www.cnblogs.com/c-hl/p/7047088.html
Copyright © 2011-2022 走看看