新手应当晓得的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处置功效
<?php require_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);
这里我有许多的推断没有写,主如果实现一下功效,比方文件夹要先创立好,你也可以本人推断,不存在就创立一个文件夹,还有一些其他推断等等。
最关键的地方是,当你不熟知的时候,要走一步调试一步,看得到的结果是啥。
图片实际功效
<?php require_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多图片上传的实现的具体内容,更多请关注百分百源码网其它相关文章!