文件上传

文件上传的时候,先传到服务器形成一个临时文件,最后使用move_uploaded_file()函数放到指定的文件夹才完成上传功能。

文件形成临时文件后,会形成一个$_FILES超级全局数组数组里保存着文件的临时地址,临时名称,大小,等信息。当php文件运行完后,临时文件就消失

 

-文件上传的注意事项:

  1. 一般设为post(不写默认get)
  2. form 声明enctype="multipart/form-data"选项
  3. 上传的类型 input type=‘file’
  4. 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

                )

原文地址:https://www.cnblogs.com/lzhlearn/p/5804866.html