PHP实现多图片上传

PHP实现多图片上传,第1张

概述今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于QQ空间上传照片的模式。即:可以一次性上传多个图片,但是封面图片只有一个。最先,最重要的事,在服务器上对文件进行读写 *** 作的时候,一定要看权限,如果没有权限,全是虾扯蛋,为什么这样说,因为全是泪。首先,前端页面:index.html @H_404_0@今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于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" onclick="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.PHP1.读取和存储都需要用到连接数据库,所以可以把它封住一下,养成良好的习惯<?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."'>";?>

  

总结

以上是内存溢出为你收集整理的PHP实现多图片上传全部内容,希望文章能够帮你解决PHP实现多图片上传所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167679.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存