图片上传与下载
来源:互联网 发布:鼠标点击软件 编辑:程序博客网 时间: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
- 图片上传与下载
- 图片上传与下载
- 图片上传与下载
- C#图片上传与下载
- php基础实例--图片上传与下载
- 文本,文件,图片的上传与下载
- 图片、文件等上传与下载
- Android前段与后台服务器的图片上传与下载
- Android与WEB服务器间的图片上传与下载
- 图片上传和下载
- Android 上传/下载图片
- RobotFramework 上传&下载图片
- 文件(图片生产缩略图)的上传与下载
- 文件(图片生产缩略图)的上传与下载
- Struts2.0 图片的上传与下载的实现
- 基于SSH的图片上传与下载的实例
- 利用AsyncHttpClient实现图片的上传与下载
- 利用AsyncHttpClient实现图片的上传与下载
- 重新配置EM(单机)
- 我理解的倒排索引
- SQL查询执行计划优化
- 事务
- grep命令详解
- 图片上传与下载
- 栈链式存储结构的C++模板类源代码
- c# get post 的方法
- NaCl学习笔记: 环境搭建
- Android性能优化
- BP神经网络(地震数据反推测井曲线)
- HTML参考
- 在点击树形的节点的时候清空对应的表单数据
- 数学常用特殊符号读音