php文件上传原理
首先请看下面这段脚本:
$uploadDir = $_SERVER['DOCUMENT_ROOT']."zend/exercise/".$_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadDir)){
echo "文件原名称: ".$_FILES['userfile']['name']."
";
echo "文件的MIME类型: ".$_FILES['userfile']['type']."
";
echo "文件的大小(字节): ".$_FILES['userfile']['size']."
";
echo "临时文件名: ".$_FILES['userfile']['tmp_name']."
";
echo "错误代码: ".$_FILES['userfile']['error']."
";
echo "上传成功";
}else {
echo "上传失败";
}
?>
再来分析文件上传原理:
(1)文件上传表单的属性是enctype="multipart/form-data,否则将会上传失败
(2)MAX_FILE_SIZE 隐藏字段(单位为字节)必须放在文件输入字段之前,其值为接收文件的最大尺寸,
加上了最好,因为它避免了用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。
(3)bool move_uploaded_file ( string filename, string destination )将上传的文件移动到新的位置,
返回的是bool值。
(4) $_FILES 数组的内容主要如上面代码所示,分别是name,tmp_name,type,size,error