一、文件上传的种类
1、图片文件
image/gif image/jpg image/jpeg iamge/png image/x-png
2、PHP可以上传多种类型的文件,如word、文本文件、Excel文件、PPT文件、二进制文件、PDF文件、视频及音频文件
二、表单特性
1、enctype属性必须为multipart/form-data 表示上传二进制数据
2、input标签的type属性为file
<form action="test.php" enctype="multipart/form-data" method="post">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
三、全局变量$_FILES
1、简介:是一个二维数据,用于接收上传文件的信息
2、$_FILES[]['name'] 存放客户端文件系统的文件的名称
3、$_FILES[]['type'] 存放客户端传递的文件的类型
4、$_FILES[]['size'] 存放文件的字节大小
5、$_FILES[]['tmp_name'] 存放文件被上传后在服务器存储的临时全路径
6、$_FILES[]['error'] 存放文件上传的错误代码
0 表示没有发生任何错误
1 上传文件的大小超出PHP配置的约定值
2 上传文件的大小超出HTML配置的约定值
3 表示文件部分上传
4 表示没有上传任何文件
//获得上传文件名字
echo $_FILES['file']['name'];//输出 1.jpg
echo '<br>';
//获得上传文件类型
echo $_FILES['file']['type'];//输出 image/jpeg
echo '<br>';
//获得上传文件大小,以字节为单位
echo $_FILES['file']['size'];//输出 31019
echo '<br>';
//获得临时文件的路径
echo $_FILES['file']['tmp_name'];//输出 G:\xampp\tmp\phpED8A.tmp
echo '<br>';
//获得文件上传的错误代码,不同的错误代码对应不同的错误
echo $_FILES['file']['error'];//输出 0
echo '<br>';
四、文件上传
move_uploaded_file()
将存放在临时目录下的上传文件拷贝到一个新的位置
//判断是否上传成功
if(!$_FILES['file']['error']){
//判断是否有uploads目录,没有则创建这个目录
if(!is_dir('uploads')){
mkdir('uploads');
}
//获取文件名,创建文件放置的位置
$filepath = 'uploads/'.$_FILES['file']['name'];
//将临时文件移动到指定位置
move_uploaded_file( $_FILES['file']['tmp_name'],$filepath);
//移动成功后,可以在uploads目录中看到上传的文件
}