了解PHP文件上传相关知识

下面本篇文章给大家介绍一下PHP文件上传的相关知识,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

一、文件上传的种类

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

  1. <form action="test.php" enctype="multipart/form-data" method="post">
  2. <input type="file" name="file">
  3. <input type="submit" value="上传">
  4. </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 表示没有上传任何文件

  1. //获得上传文件名字
  2. echo $_FILES['file']['name'];//输出 1.jpg
  3. echo '<br>';
  4. //获得上传文件类型
  5. echo $_FILES['file']['type'];//输出 image/jpeg
  6. echo '<br>';
  7. //获得上传文件大小,以字节为单位
  8. echo $_FILES['file']['size'];//输出 31019
  9. echo '<br>';
  10. //获得临时文件的路径
  11. echo $_FILES['file']['tmp_name'];//输出 G:\xampp\tmp\phpED8A.tmp
  12. echo '<br>';
  13. //获得文件上传的错误代码,不同的错误代码对应不同的错误
  14. echo $_FILES['file']['error'];//输出 0
  15. echo '<br>';

四、文件上传

move_uploaded_file()

将存放在临时目录下的上传文件拷贝到一个新的位置

  1. //判断是否上传成功
  2. if(!$_FILES['file']['error']){
  3. //判断是否有uploads目录,没有则创建这个目录
  4. if(!is_dir('uploads')){
  5. mkdir('uploads');
  6. }
  7. //获取文件名,创建文件放置的位置
  8. $filepath = 'uploads/'.$_FILES['file']['name'];
  9. //将临时文件移动到指定位置
  10. move_uploaded_file( $_FILES['file']['tmp_name'],$filepath);
  11. //移动成功后,可以在uploads目录中看到上传的文件
  12. }