文件上传的时候,先传到服务器形成一个临时文件,最后使用move_uploaded_file()函数放到指定的文件夹才完成上传功能。
文件形成临时文件后,会形成一个$_FILES超级全局数组数组里保存着文件的临时地址,临时名称,大小,等信息。当php文件运行完后,临时文件就消失
-文件上传的注意事项:
- 一般设为post(不写默认get)
- form 声明enctype="multipart/form-data"选项
- 上传的类型 input type=‘file’
- php.ini 中必须打开文件上传的权限,还能查看文件的临时文件夹;还能设置上传的最大大小
-上传后,打印 print_r($_FILES)(与下面函数无关),$_FILES 是一个二维数组
-如果上传出错了,error错误代码可能有哪些?
其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
其值为 3,文件只有部分被上传。
其值为 4,没有文件被上传。
其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
其值为 7,文件写入失败。PHP 5.1.0 引进。
bool move_uploaded_file($tem_file,$file) :
第一个参数代表你要移动的临时文件,一般设为$_FILES['你表单设的名']['tmp_name'] ; 第二个参数是你要移动到的目录需写文件名
如
move_uploaded_file($_FILES['pic']['tmp_name'],'./file/'.$_FILES['pic']['name'])
-单文件上传
多文件上传(只是换成数组 循环取出)
因为 $FILES 这个二维数组里面只是添加了 多一个上传文件信息的数组 注意input的name必须不同 Array ( [file1] => Array (
[name] => sublime 快捷键.txt
[type] => text/plain
[tmp_name] => D:wamp mpphp58A5.tmp
[error] => 0 [size] => 912 )
[file2] => Array (
[name] => 背.txt
[type] => text/plain
[tmp_name] => D:wamp mpphp58A6.tmp
[error] => 0 [size] => 1282 )
);
注意 :如果name改用数组赋值那么$_FILES会变成三维数组
如 name = pic[] , 那么$_FILES 会类似
pic] => Array
(
[name] => Array
(
[0] => Winter.jpg
[1] => Water lilies.jpg
[2] => Blue hills.jpg
)