100)PHP,文件上传总代码整理

首先是我的目录关系:
    

    

然后我的html表单代码:

      

        

 1 <html>
 2 <head>
 3     <title>Form</title>
 4     <meta
 5             http-equiv="Content-Type" content="text/html;charset=UTF-8">
 6 </head>
 7
 8 <body>
 9 <form action="BBB.php" method="post" name="form1" enctype="multipart/form-data" >
10     <table width="271" border="0" align="center" cellpadding="0" cellspacing="0">
11     <tr>
12         <td width="85">
13             <div align="right">姓名:</div></td>
14         <td width="186">
15             <label>
16                 <input name="username" type="text" id="username">
17             </label>
18         </td>
19
20     </tr>
21     <tr>
22         <td>
23             <div align
24             ="right">职业:</div></td>
25         <td>
26             <label>
27                 <input name
28                 ="job" type="text" id="job">
29             </label></td>
30     </tr>
31         <tr>
32             <td>
33                 <label>
34                     文件上传:<input type="file" name="picture">
35                 </label>
36             </td>
37         </tr>
38     </table>
39     <p align="center">
40     <input type="submit" value="Submit">
41     </p>
42 </form>
43 </body>
44 </html>

然后是我的BBB.php代码

              

 1 <?php
 2     /**
 3      * 上传函数
 4      * @param $tmp_file  $_FILES的五个信息,比如upload($_FILES(‘mingzi‘)
 5      * $_FILES里面的名字是你的对应的html代码中的上传文件的那个name
 6      * @return bool  失败返回false,成功就是true
 7      */
 8     $tmp_file=$_FILES[‘picture‘];
 9     function upload($tmp_file){
10
11         /**
12          * 是否存在错误
13          */
14
15         if($tmp_file[‘error‘]!=0){
16             echo ‘文件上传错误‘;
17             return false;
18         }
19         /**
20          * 尺寸,
21          * 这个函数自己定的,但是应该是初始化设定的,就是这个值是变化的,不是一个固定的值。
22          */
23
24         $max_size=1024*1024;//自己设定的最大尺寸
25         if($tmp_file[‘size‘]>$max_size){
26             echo "文件过大";
27             return false;
28         }
29         /**
30          * 验证后缀名,
31          * 用验证后缀和MIME方法
32          */
33                 //首先是验证后缀名
34         $tmp_file_zhui=strrchr($tmp_file[‘name‘],‘.‘) ;
35                 //strrchr函数是来剪切字符串的最后出现.的包括这个.后面的全部截取
36         //后缀的映射数组,其实就是那个满足条件的后缀表(用关联数组表示)
37         $tmp_file_zhui_list=array(
38             ‘.png‘,‘.gif‘,‘.jpeg‘,‘.jpg‘
39         );
40         if(!in_array($tmp_file_zhui,$tmp_file_zhui_list)){
41             echo "文件格式有问题";
42             return false;
43         }
44                 //就是那个$_FILES[‘type‘]有一个格式,下面的是对应那个映射表
45         $tmp_file_zhui_MIMElist=array(
46             ‘.png‘=>array(‘image/png‘,‘image/x-png‘),
47             ‘.jpg‘=>array(‘image/jpeg‘,‘image/x-pjpeg‘),
48             ‘.jpeg‘=>array(‘image/jpeg‘,‘image/pjpeg‘),
49             ‘.gif‘=>array(‘image/gif‘),
50         );
51         $old_list=array();//下面直接用$old_list不行,我觉得这个就是声明,这是自己加的
52         //得出真正的映射表,因为在我的后缀映射表中,可能不是这四个,一旦发生改动,我的下面的映射关系,我还得自己改,所以,我就用一个foreach,上面有什么后缀,我的下面就给他对应上什么$_FILE[‘type‘]格式,然后得到我要的MIME映射表
53         foreach ($tmp_file_zhui_list as $value){
54             foreach($tmp_file_zhui_MIMElist[$value] as $key=>$item){
55 //               var_dump($tmp_file_zhui_MIMElist[$value][$key]);
56                 $new_MIME_list=array_merge($old_list,(array)$tmp_file_zhui_MIMElist[$value][$key]);
57                $old_list=$new_MIME_list;
58             }
59
60         }
61         //去重
62         $new_MIME_list=array_unique($new_MIME_list);
63
64         //然后用MIME验证
65         $phpfinfo=new finfo(FILEINFO_MIME_TYPE);
66         $f_type=$phpfinfo->file($tmp_file[‘tmp_name‘]);
67         echo $f_type;
68         if(!in_array($f_type,$new_MIME_list)){
69             echo "文件格式有误";
70             return false;
71         }
72         //后缀验证完成。
73         //建立一个文件夹,来存我的临时文件
74         if(!is_dir(‘./wangchao‘)){
75             mkdir(‘./wangchao‘);
76         }
77
78         $sub_dir_name=date(‘Y--m-d-H‘);//截取年月日小时
79         //unipid是产生一个随机名字,可以试验一下  echo uniqid();
80         move_uploaded_file($tmp_file[‘tmp_name‘],‘./wangchao/‘.uniqid(‘wang_‘.$sub_dir_name.‘_‘).$tmp_file_zhui);
81         return true;
82     }
83 upload($tmp_file);
时间: 2024-12-09 07:29:05

100)PHP,文件上传总代码整理的相关文章

flash多文件上传程序代码

原文:flash多文件上传程序代码 源代码下载地址:http://www.zuidaima.com/share/1550463485168640.htm

jsp开发无刷新文件上传程序代码

原文:jsp开发无刷新文件上传程序代码 源代码下载地址:http://www.zuidaima.com/share/1550463484660736.htm 无刷新文件上传程序代码 源代码截图

文件上传类代码(php例子)

这里是来自网络朋友的一个实现的文件上传类代码,我们详细的介绍了每个变量的用处,下面看看吧,有需要可以参考一下. 这里是来自网络朋友的一个实现的文件上传类代码,我们详细的介绍了每个变量的用处,下面看看吧,有需要可以参考一下. <?php教程 /**  * 文件上传类  */ class uploadFile { public $max_size = '1000000';//设置上传文件大小  public $file_name = 'date';//重命名方式代表以时间命名,其他则使用给予的名称 

selenium之 文件上传所有方法整理总结

本文转载"灰蓝"的原创博客.http://blog.csdn.net/huilan_same/article/details/52439546 文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家分享下自己处理文件上传的经验,希望能够帮助到广大被文件上传坑住的seleniumer. 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别对这两种进行分析: 1.input标签

php课程---文件操作及文件上传的代码总结

php里面文件包含目录和文件两种 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equ

js 实现 input type=&quot;file&quot; 文件上传示例代码

在开发中,文件上传必不可少但是它长得又丑.浏览的字样不能换,一般会让其隐藏点其他的标签(图片等)来时实现选择文件上传功能 在开发中,文件上传必不可少,<input type="file" /> 是常用的上传标签,但是它长得又丑.浏览的字样不能换,我们一般会用让,<input type="file" />隐藏,点其他的标签(图片等)来时实现选择文件上传功能. 看代码: 代码如下: <!DOCTYPE html> <html x

php 文件上传实例代码

<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上传文件:<input type="file" name="upfile" /><br> <input type="submit" value="上传"

java文件上传 关键代码

文件上传 ##前台: form表单submit提交,form增加样式 enctype="multipart/form-data" method="post"; ##后台 //String path为服务器保存文件的路径 DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(5*1024);//缓存 factory.setRespository(new Fil

JSCH实现文件上传的代码实例

package com.vcredit.ddcash.monitor.sendmail; import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import java.util.P