1 upload |
$_FILES 超全局数组,包含了有关上传文件的所有信息!
而且,这个数组中只包含文件相关信息,其他数据依然在$_POST里面。
$_FILES 是一个二维数组,每上传一个文件,都是数组的一个子数组。每个子数组包含信息如下:
'name' => string 'ch05-数据库对象.ppt' (上传文件名)
'type' => string 'application/vnd.ms-powerpoint' (上传文件所属的MIME类型)
'tmp_name' => string 'E:Toolswamp64 mpphpDEC9.tmp' (文件上传后,在服务器存储的缓存文件地址)
'error' => int 0 (出现的错误信息,0表示没有错误)
'size' => int 836096 (上传文件的大小)
error常见的值:
0 没有任何错误
1 超过服务器限制大小。 php.ini文件的upload_max_filesize;
2 超过客户端限制大小。 表单中的隐藏域name="MAX_FILE_SIZE"限制的大小
3 文件只被上传了一部分、
4 没有上传文件
var_dump($_FILES); foreach ($_FILES as $key => $value) { //取到文件名,并用.分隔为数组 $nameArr = explode(".", $_FILES[$key]["name"]); //从上述数组中,取到最后一个,就是上传文件的后缀名 $houzhiming = $nameArr[count($nameArr)-1]; //使用当前时间+随机数的方式,随机生成一个文件名 $filename = date("YmdHis").rand(100,999).".".$houzhiming; // 判断myFile里面的临时文件,是不是上传过来的。 if(is_uploaded_file($_FILES[$key]["tmp_name"])){ // 将临时文件,移动到服务器www根目录下的upload文件夹中。 // 如果成功返回true,否则返回false $isOk = move_uploaded_file($_FILES[$key]["tmp_name"],$_SERVER['DOCUMENT_ROOT']."/upload/".$filename); if(!$isOk){ echo("文件【{$_FILES[$key]["name"]}】上传失败,无法移动到指定目录下!!"); continue; } }else{ echo("文件【{$_FILES[$key]["name"]}】上传的文件不是合法上传的!"); continue; } echo "文件【{$_FILES[$key]["name"]}】上传成功!!!<br>"; }
2 download |
这段代码虽然自己写不简单但是我们可以用现成的,所以也就是多复杂了
//文件下载练习 $filename="./upload/aa.png"; $basename=pathinfo($filename); header("Content-Type: image/png"); //指定下载文件类型的 header("Content-Disposition:attachment;filename=".$basename["basename"]);//指定下载文件的描述信息 header("Content-Length:".filesize($filename)); //指定文件大小的 readfile($filename);//将内容输出,以便下载。