图片上传与下载 - 日理万妓 2022-08-22 15:18 150阅读 0赞 效果展示: ![Center][] 封装图片上传类file.class.php <?php class File{ public $images; public $filename; public $allow_size; public function __construct($images,$filename,$allow_size){ $this->images=$images; $this->filename=$filename; $this->allow_size=$allow_size; } //文件大小 public function allow_size(){ if($_FILES[$this->filename]['size']>$this->allow_size){ echo "上传文件过大"; return false; } return true; } //新的名字 public function type(){ $type=substr($_FILES[$this->filename]['name'],strrpos($_FILES[$this->filename]['name'],'.')+1); $name=time().rand(1000,9999).".".$type; return $name; } //放到一个新的文件 public function move(){ $name=$this->type(); if(is_uploaded_file($_FILES[$this->filename]['tmp_name'])){ @move_uploaded_file($_FILES[$this->filename]['tmp_name'],$this->images.$name); echo "<script>alert('添加图片成功')</script>"; return $name; }else{ echo "<script>alert('添加图片失败')</script>"; } } //判断文件上传是否成功 public function error(){ if($_FILES[$this->filename]['error']==0){ return true; }else if($_FILES[$this->filename]['error']==1){ echo "文件的大小超过了php.ini中配置文件的大小"; return false; }else if($_FILES[$this->filename]['error']==2){ echo "文件中的配置大小有问题"; return false; }else if($_FILES[$this->filename]['error']==3){ echo "找不到文件的位置"; return false; } } } 封装数据库类mysql.class.php <?php class Mysql{ public $db_link; public $db_address; public $db_user; public $db_pwd; public $db_name; //public function __construct(IP地址, 用户名, 密码, 数据库) public function __construct($address,$user,$pwd,$name){ $this->db_address=$address; $this->db_user=$user; $this->db_pwd=$pwd; $this->db_name=$name; $this->connect(); } //连接数据库 public function connect(){ $this->db_link=mysql_connect($this->db_address,$this->db_user,$this->db_pwd); mysql_select_db($this->db_name); mysql_query("set names utf8"); } //进行 增删改 public function dml($sql){ $res=mysql_query($sql); if(!$res){ echo"sql语句错误"; }else{ return $res; } } //进行多条数据的查询 public function select_all($sql){ $res=mysql_query($sql); if(is_resource($res) && mysql_affected_rows()>0){ $arr=array(); while($w=mysql_fetch_assoc($res)){ $arr[]=$w; } return $arr; }else{ return false; } } //进行单行数据进行查询 public function select_one($sql){ $res=mysql_query($sql); if(is_resource($res) && mysql_affected_rows()>0){ return mysql_fetch_assoc($res); }else{ return false; } } //将数据中的某一条数据进行删除 @parme : 表名 条件 public function delete($table,$where){ //$str=mysql_query($sql); $str="delete from $table where $where"; return mysql_query($str); } //update table set name='fasf ' where id=4; public function update1($table,$arr,$where){ $str=""; foreach($arr as $k=>$v){ if(is_string($v)){ $str=$str.$k.'="$v",'; }else{ $str=$str.$k."=".$v.","; } } $value=rtrim($str,','); $sql="update $table set $value where $where"; return mysql_query($sql); } //添加一条数据insert into table(name,age) value('$name','$age'); public function insert($table,$arr){ $str1=''; $str2=''; foreach($arr as $k=>$v){ $str1=$str1.$k.","; if(is_string($v)){ $str2=$str2.'"'.$v.'",'; }else{ $str2=$str2.$v.','; } } $key=substr($str1,0,strlen($str1)-1); $value=substr($str2,0,strlen($str2)-1); $sql="insert into $table($key) value($value)"; mysql_query($sql); return mysql_insert_id(); } public function counts($sql){ mysql_query($sql); return mysql_affected_rows(); } } ?> 文件上传表单 upload.php <form action="upload.php" method="post" enctype="multipart/form-data"> <meta charset="utf-8"/> <fieldset> <legend>用户上传信息</legend> <p> <label>姓名:</label> <input type="text" name="username" class="style"> </p> <p> <label>密码:</label> <input type="text" name="pwd" class="style"> </p> <p> <label>身份证号:</label> <input type="text" name="card1" class="style"> </p> <p> <input type="file" name="filename" οnchange="showPreview(this)" class="file" /> <img id="portrait" src="" width="70" height="75"> </p> <p> <input type="submit" value="上传" class="button"> </p> </fieldset> </form> <script type="text/javascript"> function showPreview(source) { var file = source.files[0]; if (window.FileReader) { var fr = new FileReader(); fr.onloadend = function(e) { document.getElementById("portrait").src = e.target.result; }; fr.readAsDataURL(file); } } </script> <style> .button { background-color: #4CAF50; /* Green */ border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer; box-shadow: 10px 10px 5px #888888; border:2px solid; border-radius:25px; } .style{ width: 200px; height: 50px; box-shadow: 2px 1px 3px red; border:2px solid; border-radius:25px; background: -webkit-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet); /* Safari 5.1 - 6.0 */ background: -o-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet); /* Opera 11.1 - 12.0 */ background: -moz-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet); /* Firefox 3.6 - 15 */ background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); } img{ border-radius: 50%; max-width: 100%; height: 85px; width: 150px; border:1px solid white; } .file{ background-color: blue; /* Green */ border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer; box-shadow: 10px 10px 5px #888888; border:2px solid; border-radius:25px; } fieldset{ background: url("./photo/14711621876232.jpg"); border:2px solid; border-radius:25px; } </style> 跳转添加方法upload.php <?php header('Content-type:text/html;charset=utf-8'); include "file.class.php"; include "mysql.class.php"; $a="./photo/"; $file=new File($a,'filename','1000000'); if($file->error()){ if($file->allow_size()){ $path=$file->move(); if($path){ $username=$_POST['username']; $pwd=$_POST['pwd']; $card1=$_POST['card1']; $mysql=new Mysql('127.0.0.1','root','root','test'); $sql=array('username'=>$username,'pwd'=>$pwd,'card1'=>$card1,'path'=>'./photo/'.$path); //print_r($sql);die; if($mysql->insert('file',$sql)){ echo "<a href='uploading_show.php'>添加成功</a>"; }else{ echo "添加失败"; } } } } 最后一步,在目录下建立photo文件夹用来存储图片: 如果觉得对你们有帮助,请好评。 第二种上传方式:无刷新上传 建立index.html <meta charset="utf-8" > <form id= "uploadForm"> <p >指定文件名: <input type="text" name="filename" value= ""/></p > <p> 上传文件: <input type="file" name="photo" οnchange="showPreview(this)" class="file" /> <img id="portrait" src="" width="70" height="75"> </p> <input type="button" value="上传" οnclick="doUpload()" /> </form> <script src="http://www.haoyunyun.cn/jquery.js"></script> <script> function doUpload() { var formData = new FormData($( "#uploadForm" )[0]); $.ajax({ url: 'submit.php' , type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: function (returndata) { alert(returndata); }, error: function (returndata) { alert(returndata); } }); } </script> <script type="text/javascript"> function showPreview(source) { var file = source.files[0]; if (window.FileReader) { var fr = new FileReader(); fr.onloadend = function(e) { document.getElementById("portrait").src = e.target.result; }; fr.readAsDataURL(file); } } </script> 2.建立submit.php <?php if($_FILES['photo']['error']>0){ echo "上传文件失败"; die; } $dir='./photo/'; $type=substr($_FILES['photo']['name'],strrpos($_FILES['photo']['name'],'.')); $filename=time().rand(1000,9999).$type; if(is_uploaded_file($_FILES['photo']['tmp_name'])){ move_uploaded_file($_FILES['photo']['tmp_name'],$dir.$filename); echo "上传成功"; }else{ echo "上传文件失败"; } 3.建立图片存放的位置。 4.两种上传图片方法完毕,希望对你们有所帮助 下载功能: <?php header("content-type:text/html;charset=utf-8"); $link=mysql_connect("127.0.0.1",'root','root'); mysql_select_db("php9",$link); mysql_query("set names utf8"); //查询数据中的总条数 $sql="select count(id) as count from upload"; $arr=mysql_query($sql); $result=mysql_fetch_assoc($arr); //获得总条数 $size=$result['count']; //每页显示2条数据 $length=6; //计算出多少页 $pages=ceil($size/$length); $page=isset($_GET['page'])?$_GET['page']:1; if($page<=0){ $page=1; } if($page>$pages){ $page=$pages; } //数据从第几条开始 $start=($page-1)*$length; $sql="select * from upload limit $start,$length"; $res=mysql_query($sql); ?> <center> <table border="1"> <div> <?php while($a=mysql_fetch_assoc($res)){ ?> <ul> <li><?php echo $a['id'] ?></li> <li><?php echo $a['username'] ?></li> <li><a href="photo.php"><img src="<?php echo $a['dir'] ?>" width="80px" ></a> </li> <li><?php echo $a['desc1'] ?></li> <li> <a href="photo3.php?dir=<?php echo $a['dir'] ?>">下载</a> <a href="photo4.php?id=<?php echo $a['id'] ?> && dir=<?php echo $a['dir'] ?>">删除</a> </li> </ul> <?php } ?> </div> </table> <a href="photo2.php?page=1">首页</a> <a href="photo2.php?page=<?php echo $page-1 ?>">上一页</a> <a href="photo2.php?page=<?php echo $page+1 ?>">下一页</a> <a href="photo2.php?page=<?php echo $pages ?>">尾页</a> </center> <style> *{ margin: 0; padding: 0; } div{ width:900px; height: 850px; border: 1px solid #28a4c9; margin: auto; } img{ width: 200px; height: 130px; margin-left: 100px; } ul{ width: 400px; height: 300px; float: left; } li{ list-style: none; margin-left: 10px; } </style> <?php header("content-type:text/html;charset=utf-8"); $dir=$_GET['dir']; $filename=substr($dir,strrpos($dir,'/')+1); header("Content-type:image"); header("content-disposition:attachment;filename=$filename"); readfile($dir); ?> [Center]: /images/20220722/66a34e8e82df4e768c870c191bedaf58.png
还没有评论,来说两句吧...