您正在使用 IPV4 [35.175.107.142] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]保护绿色环境,构建和谐社会      

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中      
[公益] 地球是我家,绿化靠大家      
2023年 圣诞节 021
2024年 腊八节 045
2024年 元 旦 028
2024年 春 节 068
 
您现在的位置:首页 >> PHP >> 内容
本类新增
本类热门文章
PHP实现多张图片上传功能的示例代码
内容摘要: 首先要知道这个函数move_uploaded_file();接下来是我们的input框,和我们的html页面这里我们是增加的input框我们也可以写写一个属性multiple='multiple'这样就可以ctrl多选图片了htmlheadtitle多个文件上传表单/title/headbodystyleform{margin:20px;padding:10......
首先要知道这个函数

move_uploaded_file();

接下来是我们的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);

?>

版权声明:本内容来源于互联网,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:php实现简单聊天功能 下一篇:PHP如何计算两个时间段交集的天数
发布日期:2022/6/10
手机扫二维码直达本页
发布时间:13:17:51
点  击:11
录  入:齐天大圣
相关文章
Baidu
YiJiaCMS 7.3.5 build231025(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....