PHP文件上传主要代码讲解


  本文标签:PHP文件上传

复制代码 代码如下:

<?php  
 if($_FILES[myfile][name] != ) {  
if($_FILES[myfile][error] > 0) {  
echo "错误状态:" . $_FILES[myfile][error];  
} else {  
move_uploaded_file($_FILES[myfile][tmp_name] , "uploads/" . $FILES[myfile][name]);  
echo "<script>alert(上传成功!);</script>";  
}  
} else{  
echo "<script>alert(请上传文件!);</script>";  
}  
?>

说明:

在解释这篇代码前,我们有必要了解以下知识 。

$_FILES[myfile][name] 是指被上传文件的名称
$_FILES[myfile][type] 是指被上传文件的类型
$_FILES[myfile][size] 是指被上传文件的大小,单位为字节(B)
$_FILES[myfile][tmp_name] 是指被上传文件存在服务器中的临时副本文件名称,文件被移动到指定目录后临文件将被自动消毁 。
$_FILES[myfile]["error"] 是指由文件上传中有可能出现的错误的状态码,关于各状态含义后在会说明 。

了解了这些,我们再来看一下upload.php的代码 。

首先,$_FILES[myfile][name]中的myfile是指在上面HTML页面中上传文件标签的name值,根据这个我们才能知道我们正在处理的文件是哪一个input提交过来的 。

然后再来判断一下 $_FILES[myfile][name] 不是否为空,根据这个我们可以知道用户有没有上传文件,从而执行不同的操作 。

如果上传了文件并且状态是0就说明上传成功,我们就可以用 move_uploaded_file方法把上传的文件存放到指定目录,上面这个例子是指把上传的文件移动到同目录下的uploads文件夹下,这个路径是相对于这个PHP文件(既upload.php)的相对目录 。

比如,我们想把上传的文件移动到upload.php上一层叫user的文件夹中的话,我们就可以这样写:move_uploaded_file($_FILES[myfile][tmp_name] , "./user/". $FILES[myfile][name]),这种方法使用起来很方便、灵活,这样一个文件就被上传到服务器中了,可以打开服务器中的目录查看该文件 。