例子---PHP与Form表单终结篇

现在我们来说一下使用input标签的file属性,上传文件到后台,并进行展示的小例子。
用到的知识点有:PHP后台处理、Form表单和table表格。
大体思路就是:在form表单上传文件信息,经过PHP数据处理,再在table表格上显示出来。
哈哈哈,我又来屠害广大人民群众的小心脏了,今天下午我们来实现一个简单的菜单,可以在前端管理页面上传菜谱照片,设定菜名及价格和日期哦,还有图片呢,惊不惊喜意不意外刺不刺激~
这里就要用到我们前导篇里提到的知识点了,不熟悉的小伙伴,可以先去看一眼。前导篇

上代码:

首先我们先来写一个form表单,以上传数据:

<form method="post" enctype="multipart/from-data">
    <input type="file" name="picture"/><br/>
    菜名:<input type="text" name="name"/><br/>
    价格:<input type="text" name="submit" value="上传"/>
</form>

这样就写成了一个简单的上传的小页面:
这里写图片描述


接下来,我们来分析前台通过from表单上传到http请求头的数据,并存在一个menu.txt文件里:

<?php
    if(!empty($_POST['submit'])){
        $pic = upload($_FILES['picture']);
        if($pic){
            $name = htmlspecialchars(trim($_POST['name']));
            $price = htmlspecialchars(trim($_POST['price']));
            save($pic,$name,$price);
        }
    }

    //上传的函数
    function upload($upfile){
        //限制上传文件只许上传图片类型
        if($upfile['type'] == "image/jpeg" || $upfile['type'] == "image/png" || $upfile['type'] == "image/gif"){
            //如果符合上传条件[前导篇](http://blog.csdn.net/mytljp/article/details/78503790)
            //这里会把$_FILES()数组中的临时储存文件位置,改成参数2,
            if(move_uploaded_file($upfile['tmp_name'],$upfile['name'])){
                return $upfile['name'];
            }else{
                return false;
            }
        }
    }

    //写入menu.txt的函数
    function save($pic1,$name1,$price1){
        $time = date("Y-m-d H:i:s");
        $line = $pic1." ".$name1." ".$price1." ".$time."\n";
        $fp = fopen("menu.txt","a+");
        fwrite($fp,$line);
        fclose($fp);
    }
?>

这样,数据读取和存入文件,就已经完成了。
这里写图片描述


接下来,我们来完成最后一步,把文件里的数据,读取出来,并展示在前端页面上。

//在PHP中读取信息
<?php
    function out(){
        $fp1 = fopen("menu.txt","r");
        $line = array();
        while(!feof($fp1)){
            $line[] = $fgets($fp1);
        }
        fclose($fp1);
        return $line;
    }
    //这个函数,返回了,包含文件内容的数组,并且是一条一条的读取出来的,格式是每项之间用空格隔开
    $fileList = out();
?>

//接下来,我们在这里遍历数组,并展示
<table border="1" cellspacing="1" cellpadding="5" style="width:800px;text_align:center;">
    <tr>
        <td>图片</td>
        <td>菜名</td>
        <td>价格</td>
        <td>日期</td>
    </tr>
    <?php
        foreach($fileList as $key => $val){
            $result = explode(" ",$val);
            if(!empty($result[0])){
    ?>
            <tr>
                <td><img style="width:180px;height:200px;" src="<?=$result[0]?>"/></td>
                <td><?=result[1]?></td>
                <td><?=result[2]?></td>
                <td><?=$result[3]?> <?=$result[4]?></td>//因为date时间函数,默认空格分隔年月日和时分秒,所以会被分成两份
            </tr>
    <?php
            }
        }
    ?>
</table>

OK,到这里,我们的代码部分就全部完成了,接下来准备好小心脏,欣赏美食吧,我可是发出温馨提醒了哟,哈哈哈~~~
这里写图片描述

好嘞,大功告成,吧唧吧唧,看着就好吃,下午吃饭的时候,要不要搓一顿啊?萍子要去找好友,约着下午去来一顿了,先走一步咯,拜拜~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值