专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »安全 » php函数:PHP处理HTTP上传文件函数 »正文

php函数:PHP处理HTTP上传文件函数

来源: 发布时间:星期六, 2009年9月12日 浏览:3次 评论:0
转自:swords's blog

代码:<?php
/**
+--------------------------------------------------
|   Function:_asUpFiles
|   Author:   Arvan [2fs.cn]
|   Action:  处理文件上传
|   Parameter:
|   @param: $dir      -- 存放目录,最后不带"/" [字串]
|   @param: $file_var -- 表单变量 [字串]
|   @param: $max_size -- 设定最大上传值,以k为单位. [整数/浮点数]
|   @param: $type     -- 限定后辍名(小写)多个用"/"隔开,不限定则留空 [字串]
|   @param: $name     -- 上传后命名,留空则为原名,true为系统随机定名 [布林值]
|   @:
|       上传成功$dir的后文件名
|   @e.g. :
|                _asUpFiles("file", "file", '', '', true);
+--------------------------------------------------
*/

function _asUpFiles($dir, $file_var, $max_size='', $type='', $name=false)
{
         (!is_writeable($dir))
        {
                echo $dir." Can't be written or doesn't exist.";
                exit;
        }

        $upfile     =& $_FILES["$file_var"];
        $upfilename =  $upfile['name'];
         (!($upfilename=''))
        {
                 (!is_uploaded_file($upfile['tmp_name']))
                {
                        echo $upfilename." Can't be uploaded.";
                        exit;
                }

                 ($max_size>0 && $upfile['size']/1024>$max_size)
                {
                        echo 'The size of the file exceeds the limitative value.';
                        exit;
                }

                $ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
                 (!($type='') && strpos($type, $ext_name)=false)
                {
                        echo "Please upload the file of $type form.";
                        exit;
                }

                $uploadname = $name ? md5(uniqid(rand)).".".$ext_name : $upfilename;
                 (!move_uploaded_file($upfile['tmp_name'], $dir."/".$uploadname))
                {
                        echo "Possible file upload attack! Here's some debugging info:\n";
                        pr_r($_FILES);
                        exit;
                }

                 $uploadname;
        }
        
        {
                 '';
        }
}
?>




  • 篇文章: PHP生成静态页面详解

  • 篇文章: PHP-SOCKETS读书笔记1-3
  • 0

    相关文章

    读者评论

    发表评论

    • 昵称:
    • 内容: