PHP上传原理及应用
概要
1.FORM表现enctype属性
2.$_FILES系统函数
3.move_uploaded_file函数
4.is_uploaded_file函数
1.FORM标签的enctype属性
只有使用了multipart/form-date才能完整的文件数据传递。
也就是设置表单的MIME编码
<form enctype=”multipart/form-data method=”post” name=”upform”></form>
input标签type属性中的"file”
<input name=”upfile” type=”file”>
2.$_FILE[‘myfile’][‘name’] 客户端文件的原名称
$_FILE[‘myfile’]['type']
$_FILE[‘myfile’]['size']
$_FILE[‘myfile’][‘tmp_name’]
$_FILE[‘myfile’][‘error’]该文件上传相关的错误代码
0:文件上传成功
1:超过了文件大小php.ini中。
2.超过文件大小,MAX_FILE_SIZE选项指定的值。
3.文件只有部分被上传
4.没有文件被上传
5.上传文件大小为0.
3.move_uploaded_file函数
上传后移动文件到目标位置的函数
move_uploaded_file(临时文件,目标位置和文件名);
4.is_uploaded_file函数
判断上传MIME类型的文件函数
move_uploaded_file(MIME);
<?php
if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["sizes"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
//echo $name;
//echo $type;
//echo $type;
//echo $size;
//echo $tmp_name;
//echo $error;
switch($type)
{
case 'image/pjpeg' :$ok=1;
break;
case 'image/jpeg' :$ok=1;
break;
case 'image/png' :$ok=1;
break;
}
}
if($ok && $error == '0'){
move_uploaded_file($tmp_name,'upfile_tmp/'.$name);
echo "上传成功!";
}
?>
<form action="" enctype="multipart/form-data" method="post" name="upform">上传文件
<input name="upfile" type="file"></input>
<input type="submit" value="上传"></input></br>
</form>