经典论坛's Archiver

vipmf1983 发表于 2008-7-2 22:40

问个__FILES[]问题

见有的程序上写着__FILES['name'], 这是啥意思?能管啥用?
__FILES[]不是2维数组吗? 初学php,迷惑了......

saso 发表于 2008-7-2 23:01

。。。上传用。至于几维数组。
你可用print_r($_FILES)看看。

vipmf1983 发表于 2008-7-2 23:17

谢谢楼上

我知道是上传用,也知道可以使用$_FILES['myfile']['name']可以获取上传文件名字等信息,但不知道__FILES['name']是什么意思,莫非<input type='file' name='name'> 里的name属性值必须是'name'? 就是下面的代码把我搞晕了,empty($_FILES['name']是检查哪里为空的?


if(!empty($_FILES['name'])) {
                        $files         =         $this->dealFiles($_FILES);
                }else{
                        $files         =         $_FILES;
                }


function dealFiles(&$files) {
           $fileArray = array();
           $count = count($files['name']);
           $keys = array_keys($files);
           for ($i=0; $i<$count; $i++) {
                   foreach ($keys as $key) {
                           $fileArray[$i][$key] = $files[$key][$i];
                   }
           }
           return $fileArray;
        }

saso 发表于 2008-7-2 23:27

是表单名。

vipmf1983 发表于 2008-7-2 23:41

表单名? 啥意思,name是表单名? <form name="name" 这样?还是没明白

kuhanzhu 发表于 2008-7-3 08:57

多思考。看下面的代码:
[code]<?php
$accepted = array('png', 'jpg', 'jpeg', 'gif', 'bmp' ,'exe','rar','txt');//格式
if(isset($_GET['action']))
{echo $_POST['words'];
$filename=md5_file($_FILES['haha']['tmp_name']).strrchr($_FILES['haha']['name'], '.');
echo $filename."<br/>";
echo $_FILES['haha']['tmp_name']."<br/>";
echo $_FILES['haha']['name']."<br/>";
echo $_FILES['haha']['type']."<br/>";
echo $_FILES['haha']['size']."<br/>";
if(in_array(strtolower(fileext($_FILES['haha']['name'])), $accepted))
        {
move_uploaded_file($_FILES['haha']['tmp_name'],"pic/".$filename);
        }
}

function fileext($filename) {
        return substr(strrchr($filename, '.'), 1);
        //(strtolower(substr($_FILES['haha']['name'],(strrpos($_FILES['haha']['name'],'.')+1))))//字母小写
}
?>

<form action="?action=upload" enctype="multipart/form-data" method="post" name="a">
        <input type="file" name="haha"/>
        <input type="text" name="words"/>
        <input type="submit" name="submit" value="提交"/>
</form>[/code]

看代码后的作业:
1、查看手册,理解$_FILES定义以及参数功能等
2、找出上面$_FILES['haha']['name']."<br/>";中“haha”的来历,为啥不是heihei
3、如果限制上传大小为1M,应该怎么修改代码。

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.