图片上传与下载

来源:互联网 发布:鼠标点击软件 编辑:程序博客网 时间:2024/04/29 10:07

效果展示:


封装图片上传类file.class.php

<?phpclass 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

<?phpclass 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" onchange="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

<?phpheader('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" onchange="showPreview(this)" class="file" />             <img id="portrait" src="" width="70" height="75">          </p>            <input type="button" value="上传" onclick="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

<?phpif($_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.两种上传图片方法完毕,希望对你们有所帮助


下载功能:

<?phpheader("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>

<?phpheader("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);?>



2 0
原创粉丝点击