PHP如何实现多张图片上传功能(php,开发技术)

时间:2024-05-09 15:21:43 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

首先要知道这个函数

move_uploaded_file();

PHP如何实现多张图片上传功能

接下来是我们的input框,和我们的html页面

这里我们是增加的input框我们也可以写写一个属性 multiple="multiple" 这样就可以ctrl多选图片了

<html><head><title>多个文件上传表单</title></head><body><style>form{margin:20px;padding:10px;}#picInput>input{display:block;margin:10px;}</style><formaction="pic.php"method="post"enctype="multipart/form-data"><inputtype="hidden"name="MAX_FILE_SIZE"value="1000000"><divid="picInput">上传图片:<inputtype="file"name='myfile[]'></div><inputid="addBtn"type="button"onclick="addPic1()"value="继续添加图片"><br/><br/><inputtype="submit"value="上传文件"></form><script>functionaddPic1(){varaddBtn=document.getElementById('addBtn');varinput=document.createElement("input");input.type='file';input.name='myfile[]';varpicInut=document.getElementById('picInput');picInut.appendChild(input);if(picInut.children.length==3){addBtn.disabled='disabled';}}</script></body></html>

PHP向后台插入图片方法和之前不一样了。

<metacharset="UTF-8"><?php$dbhost='localhost:3306';//mysql服务器主机地址$dbuser='root';//mysql用户名$dbpass='root';//mysql用户名密码$conn=mysqli_connect($dbhost,$dbuser,$dbpass);if(!$conn){die('连接失败:'.mysqli_error($conn));}//设置编码,防止中文乱码mysqli_query($conn,"setnamesutf8");mysqli_select_db($conn,'image');$file=$_FILES['myfile'];//得到传输的数据,以数组的形式$name=$file['name'];//得到文件名称,以数组的形式$upload_path="img/";//上传文件的存放路径//当前位置foreach($nameas$key=>$names){//foreach将$name也就是我们所有图片的name的键值对输出,/**strtolower()将内容转为小写,*substr()方法可在字符串中抽取从start下标开始的指定数目的字符。这个是获取我们name的最后一的路径。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1指字符串中最后一个字符***/$type=strtolower(substr($names,strrpos($names,'.')+1));//得到文件类型,并且都转化成小写$allow_type=array('jpg','jpeg','gif','png');//定义允许上传的类型//把非法格式的图片去除if(!in_array($type,$allow_type)){//检测图片后缀是否正确unset($name[$key]);//函数,参数为name的值也就是图片的name值。}}$str='';//空字符串foreach($nameas$key=>$item){//获取图片的时间;$type=strtolower(substr($item,strrpos($item,'.')+1));//得到文件类型,并且都转化成小写if(move_uploaded_file($file['tmp_name'][$key],$upload_path.time().$name[$key])){$str.=','.$upload_path.time().$name[$key];//将图片拼接一个当前时间}else{//echo'错误';}}//向指定id插入图片地址(虽然是插入,但是是更新字段,不要迷糊了)$uid=1;//格式$str=substr($str,1);//最后的值给$str然后将内容插入数据库$sql="INSERTINTOimg"."(name)"."VALUES"."('$str')";$retval=mysqli_query($conn,$sql);if(!$retval){die('无法插入数据:'.mysqli_error($conn));}echo"数据插入成功";mysqli_close($conn);?>

插入成功之后然后读取,和之前也不一样。我们要分解字段,然后将我们的图片循环输出出来。

<metacharset="UTF-8"><style>.image{width:150px;height:150px;}</style><?php$dbhost='localhost:3306';//mysql服务器主机地址$dbuser='root';//mysql用户名$dbpass='root';//mysql用户名密码$conn=mysqli_connect($dbhost,$dbuser,$dbpass);if(!$conn){die('连接失败:'.mysqli_error($conn));}//设置编码,防止中文乱码mysqli_query($conn,"setnamesutf8");mysqli_select_db($conn,'image');$sql='SELECTnameFROMimg';//查询数据库内容$retval=mysqli_query($conn,$sql);if(!$retval){die('无法读取数据:'.mysqli_error($conn));}$picpath='';//声明空字符串while($row=mysqli_fetch_array($retval)){$picpath=$row[0];//循环我们的第一个字段下面有打印,可查看。//var_dump($picpath);exit;}$picpath=explode(',',$picpath);//分解指示符,将我们一个,分为一个数组。分为一部分。//下面可打印//var_dump($picpath);exit;$acs='';//声明空字符串for($i=0;$i<count($picpath);$i++){//将$picpath内容,也就是每个图片的路径读取出来。$acs=$picpath[$i];//将内容赋给我们的变量空。的字符串。echo"<imgclass='image'src='".$acs."'>";//在img中运行。}mysqli_close($conn);?>
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:PHP如何实现多张图片上传功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:VSCode无法打开源文件及无法打开链接库文件如何解决下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18