zoukankan      html  css  js  c++  java
  • 简易版php文件上传_超详细详解

    1.php简化版的图片上传(没有各种验证)

    1
    2
    3
    4
    <form action="" enctype="multipart/form-data" method="post" >
            请选择需要上传的文件:<input type="file" name="upfile" /><br>
            <input type="submit" value="上传" />
    </form>

    首先我们需要在form表单中加入 enctype=”multipart/form-data”表示声明表单中会有图片发送, action=”” 表示当前页面提交,method=”post”传输方式为post

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
    $upfile=$_FILES["upfile"];
    $name=$upfile['name'];
    $tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径
    move_uploaded_file($tmp_name,'up/'.$name);
    echo "上传成功";
    }
    else{
        echo "您还没有上传文件";
    }
    ?>

    关键词总结
    is_uploaded_file 表示验证文件是否是通过 HTTP POST 上传的,条件成立才可以正常上传
    $_FILES[‘upfile’][‘tmp_name’]) 表示获取到当前传输图片的本地位置
    move_uploaded_file($tmp_name,’up/’.$name); ,该方法有两个参数,第一个为上传的文件的文件名,第二个为移动文件到这个位置

    2. 文件的写入与读取
    首先介绍写入:

    1
    2
    3
    4
            $myfile = fopen("comment/" .time().'-'. rand(0, 1000) . ".comment", "a") or die("Unable to open file!");
            $txt = time().'<br />';
            fwrite($myfile, $txt);
            fclose($myfile);

    其中fopen函数的作用为写入数据,第一个参数为写入文件具体路径,第二个表示将读取到得数据放入该文件中,其中文件名采用时间戳加上随机数构成,后缀名为comment,a表示写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建它,or die表示执行失败,就执行Unable to open file!(无法打开文件)。
    第二句表示数据,数据可以是post传输的,也可以是get,随意
    第三句fwrite表示写入文件,第一个参数为写入文件的位置,第二个为要写入的数据
    第四句表示关闭该文件,表示写入完毕,本次执行完毕

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $list = glob("comment/*.comment");
    rsort($list);
    for ($i = 0; count($list) > $i; $i++) {
        $file_path = $list[$i];
        if (file_exists($file_path)) {
            $fp = fopen($file_path, "r");
            $str = fread($fp, filesize($file_path));//指定读取大小,这里把整个文件内容读取出来
            echo $str = str_replace(" ", "<br />", $str);
        }
    }

    在介绍读取:

    关键语句为

    第一句:首先使用(glob)先找到需要读取的文件,如果有很多符合条件的文件,那么他们将会使用数组进行保存,读取的时候使用遍历数组就可以了
    第二句: rsort为降序排序,主要是为了满足特定条件下的排序,例如按照发布时间
    第三句:因为可以通过var_dump,print等知道glob是以数组的形式保存路径的,所以我们使用count算出总数,然后一条条遍历,便可以得到需要读取的文件路径
    第四句:$file_path获取文件路径
    第五句:file_exists判断文件是否存在
    第六句:fopen读取该文件,并且以只读的方式打开
    第七句:fread第一个参数表示读取的东西,第二个表示读取的文件的大小,这里也就表示有多少读多少
    第八句:str_replace替换函数,表示将$str中的所有的 都替换成br(表示换行,换成网页中的换行)

  • 相关阅读:
    ansible的使用
    Selenium2+python自动化68-html报告乱码问题【转载】
    Selenium2+python自动化67-用例失败自动截图【转载】
    Selenium2+python自动化66-装饰器之运行失败截图【转载】
    Selenium2+python自动化65-js定位几种方法总结【转载】
    selenium+python自动化82-只截某个元素的图【转载】
    selenium+python自动化81-html报告优化(饼图+失败重跑+兼容python2&3)【转载】
    selenium+python自动化79-文件下载(SendKeys)【转载】
    selenium+python自动化77-autoit文件上传【转载】
    Pycharm上python和unittest两种姿势傻傻分不清楚【转载】
  • 原文地址:https://www.cnblogs.com/zqw111/p/11881570.html
Copyright © 2011-2022 走看看