众所周知,文件上传是一些网站应用中不可缺少的一部分,比如个人博客上传个性头像,一些论坛分享好的学习资料等等。这就涉及到使用表单处理文件上传的知识,在PHP中我们可以使用全局数组$来处理。下面我们来看一下基本的文件上传处理部分。首先要注意的是,能够上传文件肯定是有安全隐患的,所以在开发这部分功能的时候一定要注意网站的安全性。本文只讨论基本的文件上传部分,对安全性考虑较少,希望大家在以后的高级应用中能够有所借鉴。
在PHP预定义变量一节中,我们已经对一些预定义变量进行了大概的学习,其中就包括全局变量$。现在我们来详细了解一下这个全局变量,因为我在处理文件上传的时候会用到它的相关函数。
$参数解释:
$["file"]["name"] – 上传文件的名称
$["file"]["type"] – 正在上传的文件类型
$["file"]["size"] – 上传文件的大小(以字节为单位)
$["file"][""] – 存储在服务器上的文件临时副本的名称
$["file"]["error"] – 文件上传导致的错误代码
$["file"]["error"] 中 ["error"] 的值为:
0:未发生错误,文件上传成功
1:上传文件超出php.ini中选项限制的值(默认是2M)
2:上传文件的大小超出HTML表单选项中指定的值
3:仅上传了部分文件
4:未上传任何文件
5:文件大小为0
我们先来看一下最基本的文件上传:
HTML页面如下:
-文件
-file.php代码如下:
我们上传一个word文件,看看它是如何处理的:
文件名:css.doc
类型: /
大小:81.5 KB
存储位置:C:\\temp\php7D.tmp
可以看到,文件保存在临时目录 C:\\temp\ 中。你可能想检查一下这个目录中是否存在该文件,但结果却是:不存在!这是为什么呢?因为执行完脚本后,PHP 会删除自己生成的文件,所以上传后需要进一步处理。另外,我想提一下,PHP 生成的临时文件,比如 php7D.tmp,是有规律的,也就是说,下次你通过表单上传文件时,应该是这样的:php7E.tmp
为了保存我们上传的文件,我们需要使用一个函数。在与 -file.php 文件相同的目录中创建一个文件夹。让我们再看一下上面的例子:
让我们看看结果:
文件名:css.doc
类型: /
大小:81.5 KB
该文件已保存至:/css.doc
经过这一步的处理之后,我们就可以在自己指定的地方()获取到上传的文件了。到此,最基本的文件上传就结束了。另外,在上传的时候,我们要考虑文件的类型,文件的大小等。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。