首页 > 代码库 > 文件上传图片

文件上传图片

通过 PHP,可以把文件上传到服务器。里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件。
为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的网站源码,全部救变成他的了,直接打包看你的代码。所以一定要控制上传的目录与文件类型,一般只可以上传图片。
要实现文件上传图片我们需要写出两个php文件,第一个php文件我们需要写出一个文件上传的页面,
第二个php文件我们写出实现图片上传的功能
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>无标题文档</title>
 6 </head>
 7 
 8 <body>
 9 
10 <h1>文件上传</h1>
11 <form action="upload.php" method="post" enctype="multipart/form-data">
12    <input type="file" name="file" />
13     <input type="submit" value="上传" />
14 </form>
15 </body>
16 </html>

 1 <?php
 2 var_dump($_FILES["file"]);
 3 
 4 限制文件的类型
 5 限制文件的大小
 6 防止文件名重复
 7    
 8     一.防止文件名重复
 9    1.修改文件名
10    流水号,时间戳+随机数+用户名
11 
12    2.建文件夹
13    upload/20170317/lch/shangchuan/11.jpg
14 
15    3.保存文件
16 
17 if($_FILES["file"]["error"])
18 {
19    echo $_FILES["file"]["error"];
20 }
21 else
22 {
23    没有出错
24    
25     加限制条件
26    if(($_FILES["file"]["type"]=="image/png" || $_FILES["file"]["type"]=="image/jpeg") && $_FILES["file"]["size"]<1024000)
27    {
28       
29       防止文件名重复
30       $filename = "./img/".time().$_FILES["file"]["name"];
31       
32     转码
33       $filename = iconv("UTF-8","gb2312",$filename);
34       
35       
36     if(file_exists($filename))
37       {
38          echo "该文件已存在";
39       }
40       else
41       {
42          保存文件
43          move_uploaded_file($_FILES["file"]["tmp_name"],$filename);
44       }
45    }
46    else
47    {
48       echo "文件类型不对";
49    }
50 }

注释:对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg。 
保存被上传的文件 
上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本。 
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置: 

 上面的脚本检测了是否已存在此文件,如果不存在,则把文件拷贝到指定的文件夹。

文件上传图片