zoukankan      html  css  js  c++  java
  • 关于php上传文件

    之前一直搞不明白到底php是怎么操作上传的

    今天突然明白了

    原来并不是php操作上传的,表单提交文件之后,文件就已经放到服务器的缓存区了

    php需要做的就是在临时文件在本次回话结束时消失前。将它转存到一个地方

    具体操作如下

    <?phpheader("Content-type: text/html; charset=utf-8");
    
    $time=time();
    
    if ((($_FILES["file"]["type"] == "image/gif")
            || ($_FILES["file"]["type"] == "image/jpeg")
            || ($_FILES["file"]["type"] == "image/pjpeg"))
        && ($_FILES["file"]["size"] < 20000000))
    {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
        else
        {
    //        echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    //        echo "Type: " . $_FILES["file"]["type"] . "<br />";
    //        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    //        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
    
            move_uploaded_file($_FILES["file"]["tmp_name"],
                "upload/".$time .$_FILES["file"]["name"]);
    //            echo "Stored in: " . "upload/".time(). $_FILES["file"]["name"];
    
        }
    }
    else
    {
        echo "Invalid file";
    }

    $_FILES全局变量:

    ($_FILES的第一个参数myfile为所提交表单的name值)

    $_FILES['myFile']['name'] 客户端文件的原名称       

    $_FILES['myFile']['type'] 文件的 MIME类型,需要浏览器提供该信息的支持,例如"image/gif"       

    $_FILES['myFile']['size'] 已上传文件的大小,单位为字节       

    $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认,可以在php.ini的upload_tmp_dir指定,但用 putenv() 函数设置是不起作用的     

    $_FILES['myFile']['error'] 和该文件上传相关的错误代码,['error'] 是在 PHP 4.2.0版本中增加的,下面是它的说明:(它们在PHP3.0以后成了常量)

     

    UPLOAD_ERR_OK 值:0; 没有错误发生,文件上传成功

    UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize选项限制的值           

    UPLOAD_ERR_FORM_SIZE 值:2;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值       

    UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传                 

    UPLOAD_ERR_NO_FILE 值:4;没有文件被上传, 值:5; 上传文件大小为0    

    <?php
    require_once(__DIR__ . "/FacePPClientDemo.php");

    header("Content-type: text/html; charset=utf-8");

    $time=time();

    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 20000000))
    {
    if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
    else
    {
    // echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    // echo "Type: " . $_FILES["file"]["type"] . "<br />";
    // echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    // echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    move_uploaded_file($_FILES["file"]["tmp_name"],
    "upload/".$time .$_FILES["file"]["name"]);
    // echo "Stored in: " . "upload/".time(). $_FILES["file"]["name"];

    }
    }
    else
    {
    echo "Invalid file";
    }

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/tobemaster/p/5376768.html
Copyright © 2011-2022 走看看