新手应该知道的php多图片上传的实现
今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于QQ空间上传照片的模式。即:可以一次性上传多个图片,但是封面图片只有一个。
最先,最重要的事,在服务器上对文件进行读写操作的时候,一定要看权限,如果没有权限,全是虾扯蛋,为什么这样说,因为全是泪。
首先,前端页面:index.html
知识点:
1.通过JS动态添加input结点和设置属性,当大于3个上传图片的时候就不再给予上传图片的机会了。
2.这里最主要的是input输入框的name值,通过动态的添加数组元素,将所有上传的图片动态添加到数组当中。
后端处理功能
Connection.php
1.读取和存储都需要用到连接数据库,所以可以把它封住一下,养成良好的习惯
登录后复制
pic.php处理功能
$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);
这里我有很多的判断没有写,主要是实现一下功能,比如文件夹要先建立好,你也可以自己判断,不存在就创建一个文件夹,还有一些其他判断等等。
最关键的地方是,当你不熟悉的时候,要走一步调试一步,看得到的结果是什么。
图片现实功能
query($sql); //取出第一个图片的地址 $picpath = ''; while ($row = $result->fetch_array()){ $picpath = $row[0]; } $picpath = explode(',',$picpath)[0]; echo ""; ?>
感谢大家的阅读,希望大家收益多多。
本文转自:https://blog.csdn.net/zmzwll1314/article/details/72673138
推荐教程:《php教程》
以上是新手应该知道的php多图片上传的实现的详细内容。更多信息请关注PHP中文网其他相关文章!