PHP基础语法学习要点4
文件上传
上传的步骤:
-
表单的设置。
-
服务器端设置。
-
PHP脚本接收上传数据。
客户端(表单的设置)
注意:
-
上传的方法一定要用post方法。
-
form中的
enctype属性:规定在发送内容到服务器之前应该如何对表单数据进行编码。
-
application/x-www-form-urlencoded
,默认选项,在发送前对所有字符进行编码。 -
multipart/form-data
,不对字符进行编码,可以理解为数据流或二进制数据传递过去。
-
服务器端的设置(php.ini配置文件):
-
file_uploads=On
是否允许上传。 -
upload_max_filesize=2M
PHP允许的最大上传的文件大小。 -
post_max_size=8M
限制通过POST方法可以接受数据的最大值。注意:
post_max_size
设置的值必须大于upload_max_filesize
设置的值。 -
upload_tmp_dir
,上传文件后的临时文件,存放的目录。
PHP脚本接收上传数据
上传后的数据使用$_FILES
来接收。
array(1) { ["upload"]=> array(5) { ["name"]=> 上传的文件名。 string(10) "readme.pdf" ["type"]=> MIME类型 string(15) "application/pdf" ["tmp_name"]=> 临时文件名 string(24) "C:\xampp\tmp\php5E7C.tmp" ["error"]=> 错误号 int(0) ["size"]=> 文件的大小,用字节来表示。 int(188091) } }
注意:
-
上传后的数据使用
$_FILES
来接受,但是表单中的其他数据也可以使用$_POST
来接受。 -
提醒你们:在做文件上传的时候一定要注意,先打印出
$_FILES
看里面有没有东西。如果没有东西。就找原因,不要继续往下做。 -
错误号:
0,没有错误发生,文件上传成功。
1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
2, 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
3,文件只有部分被上传。
4, 没有文件被上传。
6, 找不到临时文件夹。
7,文件写入失败。
-
文件上传最核心的一步
move_uploaded_file(临时文件名,移动的位置)
-
要进行判断的东西:
-
判断错误号。
-
判断MIME类型
-
后缀名
-
文件的大小。
-
判断临时文件是否通过http的post方法上传过来的。
is_uploaded_file(临时文件名)
-
生成随机的新文件名。(随机的规则不是定死的,他是活的,自己去想)
-