文件用表单提交后,自动发送到服务器上,形成一个临时文件,需要移到指定的存储位置,临时文件的地址存放在$_FILES全局数组中,这个全局数组还保存着临时名称,大小等信息
1,文件上传必须用post提交数据
2,必须声明enctype选项,写在form标签中,enctype='multipart/form-data';
3,移动临时文件用move_uploaded_file()函数
4,接收页面执行完毕,临时文件消失
提交表单
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action='file.php' method='post' enctype='multipart/form-data'>
用户名:<input type='text' name='name'><br/>
图片:<input type='file' name='pic' ><br/>
<input type='submit' value='提交'>
</form>
</body>
</html>
接收页面
<?php
print_r($_POST);
print_r($_FILES);
/*
Array
(
[pic] => Array
(
[name] => 设计图.png
[type] => image/png
[tmp_name] => D:wamp mpphpD0F7.tmp
[error] => 0
[size] => 18085
)
)
*/
function mk_dir(){
$dir=date('md/i',time());
if(is_dir('./'.$dir)){
return $dir;
}else{
mkdir('./'.$dir,0777,true);
return $dir;
}
}
function getExt($file){
$tmp=explode('.',$file);
return end($tmp);
}
function randName(){
$str='abcdefghijklmnopqrstuvwxyz0123654789';
return substr(str_shuffle($str),0,6);
}
if($_FILES['pic']['error']!=0){
echo '上传失败';
exit;
}
$pic=$_FILES['pic'];
//拼接文件路径
$path='./'.mk_dir().'/'.randName().'.'.getExt($pic['name']);
//移动
if(move_uploaded_file($pic['tmp_name'],$path)){
echo '上传成功';
}else{
echo '失败';
}
?>