php如何实现图片上传的封装
php实现图片上传封装
1 先封装图片上传类 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;
- }
- }
- }
2 封装数据库类 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();
- }
- }
- ?>
3 创建文件上传表单upload.php
- <form action="uploading_insert.php" method="post" enctype="multipart/form-data">
- <meta charset="utf-8"/>
- <fieldset>
- <legend>用户上传信息</legend>
- <p>
- <label>姓名:</label>
- <input type="text" name="username">
- </p>
- <p>
- <label>密码:</label>
- <input type="text" name="pwd">
- </p>
- <p>
- <label>身份证号:</label>
- <input type="text" name="card1">
- </p>
- <p>
- <label>上传图像:</label>
- <input type="file" name="filename"><input type="hidden" name="MAX_FILES_SIZE" value="1000000">
- </p>
- <p>
- <input type="submit" value="上传">
- </p>
- </fieldset>
- </form>