PHP 文件上传
要想顺利实现上传功能,首先要在php.ini中开启文件上传,并对其中一些参数作出合理的设置,找到 File Upload 项 可以看到下面有三个属性,表示含义如下。
file_upload :如果值为 on ,说明服务器支持文件上传。否则反之
upload_tmp_dir : 上传文件临时目录。在文件被成功上传之前,文件首先存放到服务器的临时目录。如果想要知道位置,可以在后面设置存放路径,否则,使用系统默认目录
upload_max_filesize :服务器允许上传的文件的最大值,以MB为单位。系统默认为2MB,用户可自行设置
★ 如果使用集成化的安装包来配置PHP 的开发环境,上面介绍的这些配置信息按默认已经配置好了。
上传文件(客户端)
对FORM表单的要求
- 文件上传框 input
type="file"
- 必须以POST方式提交
method="post"
- 必须指定FORM数据提交的编码类型为多格式上传
enctype="multipart/form-data"
上传文件(服务器端)
-
接收文件上传的数据使用
$_FILES
接收到的是文件的相关信息(文件名、文件类型、文件大小、临时文件名等信息)文件名:
$_FILES['file']['name']
文件类型:$_FILES['file']['type']
临时目录+临时文件名:$_FILES['file']['tmp_name']
文件大小(字节 int型):$_FILES['file']['size']
上传的错误码:$_FILES['file']['error']
错误码 说明 0 无误,可以继续进行文件上传的后续操作。 1 超出上传文件的最大限制,upload_max_filesize = 2M php.ini中设置,一般默认为2M。可根据项目中的实际需要来修改 2 超出了指定的文件大小,根据项目的业务需求指定上传文件的大小限制 3 只有部分文件被上传 4 文件没有被上传 6 找不到临时文件夹,可能目录不存在或没权限 7 文件写入失败,可能磁盘满了或没有权限 注★:错误码中没有5
-
接收到文件以后须迅速将文件从临时目录中保存到指定位置,否则代码执行结束,文件将自动删除。
move_uploader_file('临时文件路径','保存到的目标路径')
-
文件上传涉及安全性问题,做保存文件之前应对文件的后缀名、mime类型、大小过滤限制后才执行。