🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 1、文件上传原理 ``` 上传文件,就是将文件从浏览器端传到服务器端; 上传文件,必须使用<form>标记来向服务器端发数据; 上传文件,<form>标记的method属性值必须是POST; 上传文件,<form>标记的enctype属性值必须是multipart/form-data; 上传文件,必须使用<input type = ‘file’ name=’upload’>标记实现。 ``` ![](https://img.kancloud.cn/02/cf/02cfc7900a13480ff8d424da3a558600_728x187.png) ![](https://img.kancloud.cn/a8/0c/a80c1358c903241cc5c6f61cc52840eb_912x132.png) ## 2、超全局变量数组 $_FILES * $_POST数组中保存的是普通表单元素数据; * $_FILES数组中保存的是上传文件的信息。 ![](https://img.kancloud.cn/8a/d4/8ad4144e327f29325d30293817a25b3c_802x387.png) ## 3、上传文件错误代码 ![](https://img.kancloud.cn/12/ca/12ca1b2fb694240661b3e13fe2e15841_633x216.png) 提示:0、1、4比较重要。 ## 4、查看上传的临时文件位置 * 上传文件的默认临时目录,如果没有指定php.ini配置项upload_tmp_dir的值,则使用操作系统临时目录(c:\windows\temp)。通过phpinfo()函数查看。 * 为什么在 c:\windows\temp 中看不到上专文件呢?因为临时文件是短暂存在的,也就是在脚本执行完毕后,就消失了。 ![](https://img.kancloud.cn/dc/3f/dc3f4036aedf0a7fdd725fd3dcaf8d73_943x275.png) ## 5、将上传文件移动到新位置 * 描述:本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。最好在临时文件没有消失前移动。 * 语法: ``` bool move_uploaded_file ( string $filename , string $destination ) ``` * 参数:$filename,指定上传的临时文件名;$destination,指定新的文件名路径; * 注意:如果文件已经存在,则会覆盖操作。 ![](https://img.kancloud.cn/fb/b3/fbb3a2c15eaff39c02a4759e78aa3514_693x251.png) ## 6、上传文件的相关配置(php.ini) * upload_max_filesize配置:上传单个文件的大小限制,默认为2MB。 * post_max_size配置:规定上传多个文件的总大小,默认为8MB。 * max_file_uploads配置:规定最多上传的文件个数,默认为20个。 ![](https://img.kancloud.cn/d9/9e/d99ec1ee04fa270a974fe511afc0d578_811x145.png) ![](https://img.kancloud.cn/ac/94/ac9449184748069b3822def02e64755d_847x119.png) ## 7、获取文件路径信息 pathinfo() * 描述:返回文件路径的信息 ; * 语法: ``` mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] ) ``` * 参数: $path,要解析的路径。 $options,如果省略,返回全部单元; PATHINFO_DIRNAME,目录名称; PATHINFO_BASENAME,文件名称; PATHINFO_EXTENSION,扩展名; PATH_FILENAME,文件名。 ## 8、检查数组中是否存在某个值 in_array() * 描述:检查数组中是否存在某个值 * 语法: ``` bool in_array ( mixed $needle , array $arr ) ``` * 参数:$needle检索的值,$arr原数组。 ## 9、生成唯一ID uniqid() * 描述:生成一个唯一ID * 语法: ``` string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] ) ``` * 参数: $prefix前缀字符串,如果省略,返回字符串长度为13; $more_entropy后缀字符串,如果为true,返回字符串长度为23。 ![](https://img.kancloud.cn/b3/a5/b3a560e1544076c0f9ff5d945f1b1637_596x162.png)