PHP实现文件上传
时间会让人遗忘一切,而整理遗忘的知识会让你在未来的路上不迷茫!
很多网站都需要实现文件上传功能,这个功能说大不大,说小不小,但是如果文件上传出现漏洞,可能会导致网站的控制权被hack拿下,所有文件上传的控制要做到严格严格再严格,为了更加深刻研究文件上传漏洞的原理,本文主要编写了文件上传的基本功能,只是简单的做了一个校验。
先看我的前端页面,这里额前端代码和原来有点小小的区别,那就是采用二进制传输的方法进行数据传输。前端文件名:upload.php
文件上传的接收,处理都写在以下这段代码中,这个文件起名为upload_server.php
在文章结尾处,在附一个文件上传error码以及含义:
$_FILES[‘file’][‘error’]有以下几种类型
1、UPLOAD_ERR_OK:其值为 0,没有错误发生,文件上传成功。
2、UPLOAD_ERR_INI_SIZE:其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize选项限制的值。
3、UPLOAD_ERR_FORM_SIZE:其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
4、UPLOAD_ERR_PARTIAL:其值为 3,文件只有部分被上传。
5、UPLOAD_ERR_NO_FILE:其值为 4,没有文件被上传。
6、UPLOAD_ERR_NO_TMP_DIR:其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
7、UPLOAD_ERR_CANT_WRITE:其值为 7,文件写入失败。PHP 5.1.0 引进。