图片上传与下载

原创 2016年06月01日 09:57:49

效果展示:


封装图片上传类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" 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

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

<?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);
?>



版权声明:本文为郝云原创文章,未经郝云允许不得转载。 举报

相关文章推荐

基于struts2的文件上传下载

1.struts.xml 1 struts> 2 constant name="struts.multipart.maxSize" value="209715200" /> 设置文件上...

JavaWeb实现文件上传 / 下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。   对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Java上传下载图片

做一个将本地图片上传到mysql数据库的小实例,顺便也下载下来到桌面检测是否上传成功。 在写代码之前得先在数据库中建立image表,用来存储图片。 create table image  ...

图片上传和下载

简单的图片处理: /** * 上传头像 * * @param fileName * @param url * @return */ public static boole...

Android 上传/下载图片

/** * 上传图片到服务器 * @param uploadFile 要上传的文件目录 * @param actionUrl 上传的地址 * @return S...

RobotFramework 上传&下载图片

WEB自动化-上传&下载图片WEB自动化里面上传和下载图片基本上是用 autoit 这个工具处理的。 对于使用 robotframework + selenium2library + autoit ...

phonegap上传以及下载图片

在phonegap中,有时我们需要从服务器下载图片以及上传图片,这个时候可以用到官方提供的一个插件:FileTransfer 首先通过命令添加插件: cordova plugin add or...

Mongo中上传下载图片

在ITOO中教师使用在线编辑的方法出卷,有一个需求是可以针对某一个题配上相应的图片,所以要做一个上传 图片的功能。在ITOO中图片很音频都是直接存储在MongoDB中的,为了实现这个功能自己先做了一个...

untiy实现图片的上传和下载

前端(unity)的程序:​实现图片的上传和下载注意www个人感觉就是unity对http的简单封装,WWW向服务器发送请求时,可以Post或Get一些数据一同给服务器,同时服务器会对WWW的请求做出...

javaweb 文件上传与下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。   对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)