• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-20) 19次浏览 已收录 0个评论

新手应该知道的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<span>@本文来*源gaodai#ma#com搞*!代#%^码$网*</span><textarea>搞gaodaima代码</textarea>{        echo 'failed';    }}//向指定id插入图片地址(虽然是插入,但是是更新字段,不要迷糊了)$uid = 1;$str = substr($str,1);$sql = "UPDATE upload set pic = '".$str."' WHERE id = ".$uid;$result = $mysqli->query($sql);

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:新手应该知道的php多图片上传的实现

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址