文件上传及预览

现在上传头像是很常见的了在很多地方可以用到

在这里我们了解一下怎么上传图像

一、文件上传功能

(1)第一是要有这个上传页面了

首先是要写表单元素了(其中就有处理页面“关于上传的处理了,其中有些规则可以写”,还有传输方式,再就是一个重要的属性,因为是文件上传,所以要有这个属性:enctype="multipart/form-data")再就是关于按钮了,表单决定之后,就是里面的内容,文件上传自然按钮的类型是“file”;然后就是“上传”按钮了,这个要用到提交,所以按钮类型要用“submit”的,代码如下:

1 <form action="schuli.php" method="post" enctype="multipart/form-data">
2 选择文件:<input type="file" name="file" /> <input type="submit" value="提交" />
3 
4 </form>

效果就是上面我发的那张图片

(2)第二就是重要的文件上传的处理页面了

 1 <?php
 2 
 3 //取文件信息
 4 $arr=$_FILES["file"];
 5 //var_dump($arr);
 6 
 7 //加限制条件
 8 //1.文件类型
 9 //2.文件大小
10 //3.保存的文件名不重复
11 if(($arr["type"]=="image/jpeg" || $arr["type"]=="image/png") && $arr["size"]<1024000 )
12 {
13         //临时文件的路径
14     //$arr["tmp_name"];
15         
16     //上传的文件存放的位置
17     //1.用户名加时间戳
18     //2.类似网盘,使用文件夹来防止重复
19     $filename="./images/".time().$arr["name"];
20     
21     //保存之前判断该文件是否存在
22     if(file_exists($arr["name"]))
23     {
24         echo "该文件已存在";
25     }
26     else
27     {
28         //转换编码格式
29         $filename=iconv("UTF-8","gb2312",$filename);
30         //移动临时文件到上传的文件存放的位置
31         //1.临时文件的路径 2.存放的路径
32         move_uploaded_file($arr["tmp_name"],$filename);
33         }  
34     }
35 else
36 {
37     echo "上传的文件类型和大小不正确";
38 }

二,上传文件预览

上传图片时,都会先看效果怎么样,然后再上传的,接下来就是图片预览功能了

 1 <form id="sc" action="ylchuli.php" method="post" enctype="multipart/form-data" target="shangchuan">
 2     
 3     
 4     <input type="hidden" name="tp" value="" id="tp" />
 5     
 6     <div id="yl">
 7         <input type="file" name="file" id="file" onchange="document.getElementById('sc').submit()" />
 8     </div>
 9     
10     
11     
12 </form>
13 
14 <iframe style="display:none" name="shangchuan" id="shangchuan">
15 </iframe>

给div加样式

1 <style type="text/css">
2 #yl{ width:200px; height:300px; background-image:url(images/1495078781tuzi.jpg); background-size:200px 300px;}
3 #file{ width:200px; height:300px; float:left; opacity:0;}
4 </style>

这个预览是用js做的

 1 <script type="text/javascript">
 2 
 3 //回调函数,调用该方法传一个文件路径,该变背景图
 4 function showimg(url)
 5 {
 6     var div = document.getElementById("yl");
 7     div.style.backgroundImage = "url("+url+")";
 8     
 9     document.getElementById("tp").value = url;
10 }
11 
12 </script>

再就是处理页面

 1 <?php
 2 
 3 if($_FILES["file"]["error"])
 4 {
 5     echo $_FILES["file"]["error"];
 6 }
 7 else
 8 {
 9     if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png")&& $_FILES["file"]["size"]<1024000)
10     {
11         $fname = "./images/".date("YmdHis").$_FILES["file"]["name"];    
12         
13         $filename = iconv("UTF-8","gb2312",$fname);
14         
15         if(file_exists($filename))
16         {
17             echo "<script>alert('该文件已存在!');</script>";
18         }
19         else
20         {
21             move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
22             
23             
24             $delurl = iconv("UTF-8","gb2312",$_POST["tp"]);
25             unlink($delurl); //删除文件
26             
27             echo "<script>parent.showimg('{$fname}');</script>";
28         }
29         
30     }
31 }

效果:

当想换图片时点击图片

就会出现你的图片点击图片换上就行

这样就换好了。

posted @ 2017-05-18 16:50  小牛吃青草  阅读(570)  评论(0编辑  收藏  举报