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']),这种方法使用起来很方便、灵活,这样一个文件就被上传到服务器中了,可以打开服务器中的目录查看该文件。