background image

PHP 的文件上传/资源指令

PHP 的文件上传/资源指令

要想通过 PHP 成功地管理文件上传,需要各种配置指令、$_FILES 超级全局变量和适当编
写的 web 表单共同协作。在下面各小节中,我们将分别介绍这 3 个主题,最后提供一些示
例。
PHP 的文件上传/资源指令
有一些配置指令可用于精细地调节 PHP 的文件上传功能。这些指令用来确定是否启用
PHP 的文件上传、可允许的最大上传文件大小、可允许的最大脚本内存分配和其他各种重
要的资源基准。
1.file_uploads=on/off
作用域:PHP_INI_SYSTEM ;默认值:1 。
file_uploads 指令确定服务器上的 PHP 脚本是否可以接受文件上传。
2 . max-execution-time=integer
作用域:PHP_INI_ALL ;默认值:30 。
max-execution-time 指令确定 PHP 脚本在注册一个致命错误之前可以执行的最长时间,以
秒为单位。
3 . memory_limit=integer M
作用域:PHP_INI_ALL ;默认值:8M
memory_limit 让指令设置脚本可以分配的最大内存量,以 MB 为单位。注意,此设置中整
数值后面必须跟一个 M 才能正常起作用。这可以防止失控的脚本独占服务器内存(甚至
在某些条件下使服务器崩溃)。此指令只有在编译时设置了--enable-memory-limit 标志的
情况下才生效。
4 . upload_max_ files=integer M
作用域:PHP_INI_SYSTEM :默认值:2M 。
Upload_max_files 指 令 确 定 上 传 文 件 的 最 大 大 小 , 以 MB   为 单 位 . 此 指 令 必 须 小 于
post_max_size,因为它只应用于通过 file 输入类型传递的信息,而不应用于通过 POST 实
例传递的信息。与 memory_limit 一样,要注意整数值后面有一个 M 。
5.upload_tmp_dir=string
作用域:PHP_INI_SYSTEM ;默认值:Null 。
上传的文件在处理之前必须成功地传输到服务器,所以必须指定一个位置,可以临时放
置这些文件,直到文件移到最终目的地为止。这个位置使用 upload_tmp_dir 指令来指定。例
如,假设希望将上传的文件临时存储在/tmp/phpuploads/目录,就要使用:
upload_tmp_dir="/tmp/phpuploads/"
记住,这个目录对于拥有此服务器进程的用户必须是可写的。因此,如果用户 nobody 拥
有 apache 进程,那么用户 nobody 应当是该临时上传目录的拥有者,或者是拥有此目录的
组中的成员。否则,用户 nobody 就无法将文件写入此目录,除非为这个目录指定为完全
写权限。
6 .post_max_size=integer M
作用域:PHP_INI_SYSTEM;默认值:8M 。
post_max_size 指令确定通过 POST 方法可以接受的信息的最大大小,以 MB 为单位。通常
情况下,此指令设置应当大于 upload_max_filesize,因为除了上传的文件之外,还可能传
递了其他的表单域。与 memory_limit 和 upload_max_filesize 一样,整数值后面必须加上 M