首页 > 代码库 > 文件上传的基本知识

文件上传的基本知识

 1 <?php
 2 //获取提交文件的相关信息需要用$_FILES[] file数组获取
 3 //取文件信息
 4 $arr =$_FILES["file"];
 5 //var_dump($arr["name"]);
 6 //$arr["name"]原来的文件名
 7 
 8 //用户上传的临时文件的路径
 9 //$arr["tmp_name"];
10 
11 //我们想把这个文件存放的位置是当前文件夹的images文件夹里并且重新命名该文件为11.jpg
12 $filename = "./images/11.jpg";
13 
14 //windows系统采用的编码格式不是UTF-8的形式而是 国标的gb2312格式
15 //所以往windows里面存东西的时候要转化为国标的gb2312的编码格式存储才可以
16 //转换编码格式: 意思就是将$filename的编码格式UTF-8转化为gb2312的格式形成一个新的$filename
17 $filename = iconv("UTF-8","gb2312",$filename);
18 
19 //移动临时文件到我们想存放的位置
20 //括号内的第一个参数是临时文件的路径  也就是 $arr["tmp_name"];
21 //第二个参数是要移动到的位置 也就是 $filename
22 move_uploaded_file($arr["tmp_name"],$filename);
23 
24 
25 
26 
27 
28 
29 
30 
31 <?php
32 //添加上传文件的限制条件
33 //1.控制文件的类型
34 //2.控制文件的大小
35 //3.保存的文件名不重复
36 
37 if($arr["type"]=="image/jpeg" || $arr["type"]=="image/png" && $arr["size"]<1024000)
38 {
39     //在新建的文件的名里面拼加用户名和时间戳来防止文件重复
40     $filename = "./images/".$uid.time().$arr["name"];  //在保存之前加if语句判断
41     
42     if(file_exists($filename))        //保存之前判断该文件是否存在
43     {
44         echo "该文件已存在";
45     }
46     else
47     {
48         $filename = iconv("UTF-8","gb2312",$filename);
49         move_uploaded_file($arr["tmp_name"],$filename);    
50     }
51 }
52 else
53 {
54     echo "上传的文件大小或类型不正确";
55 }

 

 

 

//前台页面(接上面):

 1 </head>
 2 
 3 <body>
 4 <h1>上传文件</h1>
 5 
 6 enctype="multipart/form-data"  //如果是上传文件的话得需要写个属性enctype代表规定了一个数据类型
 7 
 8 
 9 <form action="chuli.php" method="post" enctype="multipart/form-data">
10 请选择文件:<input type="file" name="file" />
11           <input type="submit" value="上传" />
12 
13         
14 </form>
15     //一点击上传,它就把这个文件放在服务器上一个暂时存放临时文件的地方,然后把上传这个文件的相关信息交给
16     //action的处理页面
17     //文件存放在服务器存放临时文件的地方
18     //文件的相关信息交给处理页面
19 </body>
20 
21 </html>

 

文件上传的基本知识