首页后端开发PHP新手应该知道的php多图片上传的实现

新手应该知道的php多图片上传的实现

时间2024-02-02 06:04:03发布访客分类PHP浏览435
导读:收集整理的这篇文章主要介绍了新手应该知道的php多图片上传的实现,觉得挺不错的,现在分享给大家,也给大家做个参考。新手应该知道的php多图片上传的实现今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于qq空间上传照片的模式。即:可...
收集整理的这篇文章主要介绍了新手应该知道的php多图片上传的实现,觉得挺不错的,现在分享给大家,也给大家做个参考。

新手应该知道的php多图片上传的实现

今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于qq空间上传照片的模式。即:可以一次性上传多个图片,但是封面图片只有一个。

最先,最重要的事,在服务器上对文件进行读写操作的时候,一定要看权限,如果没有权限,全是虾扯蛋,为什么这样说,因为全是泪。

首先,前端页面:index.htML

html>
    head>
    tITle>
    多个文件上传表单/title>
    /head>
    body>
    style>
    form{
            margin: 20px;
            padding: 10px;
    }
        #picInput>
input{
            display: block;
            margin: 10px;
    }
    /style>
    form action="pic.php" method="post" enctyPE="multipart/form-data">
        input type="hidden" name="MAX_FILE_SIZE" value="1000000">
        div id="picInput">
            上传图片:input type="file" name='myfile[]'>
        /div>
        input id="addBTn" type="button" οnclick="addPic1()" value="继续添加图片">
    br/>
    br/>
        input type="submit" value="上传文件">
    /form>
    script>
    function addPic1(){
            VAR addBtn =  document.getElementById('addBtn');
            var input = document.createElement("input");
            input.type = 'file';
            input.name = 'myfile[]';
            var picInut = document.getElementById('picInput');
            picInut.appendChild(input);
        if(picInut.children.length == 3){
                addBtn.disabled = 'disabled';
        }
    }
    /script>
    /body>
    /html>
    

知识点:

1.通过JS动态添加input结点和设置属性,当大于3个上传图片的时候就不再给予上传图片的机会了。

2.这里最主要的是input输入框的name值,通过动态的添加数组元素,将所有上传的图片动态添加到数组当中。

后端处理功能

Connection.php

1.读取和存储都需要用到连接数据库,所以可以把它封住一下,养成良好的习惯

?php//创建对象并打开连接,最后一个参数是选择的数据库名称$MySQLi = new mySQLi('localhost','root','','test');
//检查连接是否成功if (mysqli_connect_errno()){
        //注意mysqli_connect_error()新特性    die('Unable to connect!'). mysqli_connect_error();
}
    

pic.php处理功能

?phprequire_once 'connection.php';
    $file = $_FILES['myfile'];
      //得到传输的数据,以数组的形式$name = $file['name'];
          //得到文件名称,以数组的形式$upload_path = "zhouqi666.cn/test/images/";
     //上传文件的存放路径//当前位置foreach ($name as $k=>
$names){
        $type = strtolower(substr($names,strrpos($names,'.')+1));
    //得到文件类型,并且都转化成小写    $allow_type = array('jpg','jpeg','gif','png');
 //定义允许上传的类型    //把非法格式的图片去除    if (!in_array($type,$allow_type)){
            unset($name[$k]);
    }
}
    $str = '';
    foreach ($name as $k=>
$item){
        $type = strtolower(substr($item,strrpos($item,'.')+1));
//得到文件类型,并且都转化成小写    if (move_uploaded_file($file['tmp_name'][$k],$upload_path.time().$name[$k])){
            //$str .= ','.$upload_path.time().$name[$k];
            echo 'success';
    }
else{
            echo 'failed';
    }
}
    //向指定id插入图片地址(虽然是插入,但是是更新字段,不要迷糊了)$uid = 1;
    $str = substr($str,1);
    $sql = "UPDATE upload set pic = '".$str."' WHERE id = ".$uid;
    $result = $mysqli->
    query($sql);
    

这里我有很多的判断没有写,主要是实现一下功能,比如文件夹要先建立好,你也可以自己判断,不存在就创建一个文件夹,还有一些其他判断等等。

最关键的地方是,当你不熟悉的时候,要走一步调试一步,看得到的结果是什么。

图片现实功能

?phprequire_once 'connection.php';
    $uid = 1;
    $sql = "SELECT pic From upload WHERE id =".$uid;
    $result = $mysqli->
    query($sql);
    //取出第一个图片的地址$picpath = '';
    while ($row = $result->
fetch_array()){
        $picpath = $row[0];
}
    $picpath = explode(',',$picpath)[0];
    echo "img src='".$picpath."'>
    ";
    ?>
    

感谢大家的阅读,希望大家收益多多。

本文转自:https://blog.csdn.net/zmzwll1314/article/details/72673138

推荐教程:《php教程》

以上就是新手应该知道的php多图片上传的实现的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 新手应该知道的php多图片上传的实现
本文地址: https://pptw.com/jishu/596456.html
教你用PHP实现微信小程序人脸识别刷脸登录功能 简单的php多线程解决方法

游客 回复需填写必要信息