众所周知,文件上传在一些网站应用中是必不可少的一部分。比如个人博客上传个性头像,一些论坛分享好的学习资料等,这就涉及到使用表单处理文件上传的知识,在php中我们可以使用$_FILES这个全局数组来处理。下面就看看基本的文件上传处理部分。首先要说明的,能够上传文件必定是一个安全隐患,所以在开发这部分功能时,一定要注意网站的安全性。而本文所探讨的只是基本的文件上传部分,关于安全性这方面考虑的较少,希望在日后的高级应用中可以学习的到。
在PHP预定义变量这一节我们对一些预定义变量进行了一些大概的学习,其中就有$_FILES这个全局变量,那么现在再来详细的了解关于这个全局量的知识,因为我在处理文件上传时,要使用到它的相关功能。
$_FILES参数详解:
$_FILES["file"]["name"] – 被上传文件的名称
$_FILES["file"]["type"] – 被上传文件的类型
$_FILES["file"]["size"] – 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] – 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] – 由文件上传导致的错误代码
$_FILES["file"]["error"]中的["error"]值情况:
UPLOAD_ERR_OK
0:没有错误发生,文件上传成功
UPLOAD_ERR_INI_SIZE
1:上传的文件超过了 php.ini中upload_max_filesize(默认情况为2M) 选项限制的值
UPLOAD_ERR_FORM_SIZE
2:上传文件的大小超过了 HTML表单中MAX_FILE_SIZE选项指定的值
UPLOAD_ERR_PARTIAL
3:文件只有部分被上传
UPLOAD_ERR_NO_FILE
4:没有文件被上传
5:传文件大小为0
下面我们就来看看最基本的文件上传:
这个HTML页面如下图:
upload-file.php代码如下:
我们随便上传一个word文件,看看处理结果如何:
可以看到,这个文件被保存到C:\WINDOWS\temp\临时目录下,你可能想去看看在这个目录是否存在这个文件,但结果是:没有!为什么呢?因为php在执行完这个脚本后,把它生成的文件又删除了,所以在上传之后还要进一步处理。另外还随便提一下,在windows下,php所生成的临时文件如php7D.tmp是有规律的,也就是说在下一次通过表单上传的文件应该像这样:php7E.tmp
为了保存我们上传的文件,要使用move_uploaded_file函数。在你的upload-file.php文件同目录创建一个upload文件夹。下面再来看看上面那个示例:
?>
再来看看结果:
经过这一步的处理,在我们所指定的地方(upload)就可以得到我们上传的文件。到这里,最基本的文件上传就结束了。还说一下,我们在上传的时候一定要考虑文件的类型,要考虑文件的大小等。关于这些方面随着学习的深入再来介绍吧。
如果你是一个学习php的新手,请查看php教程文章归档。
相信大部分的人在毕业的时候都有听说职业规划,但是关于它的重要性却没有引起我们的关注。如今毕业到现在,再来想起职业规划这一词时,已经过了规划的最佳时期。比较的后悔!
在我个人看来,一个成熟的人做事总是有计划,只有这样才能在规定的时间把事情做好!我们的时间在自己的手上总是不经意的流走,到老时才发现,那些小时候的远大志向或者理想到底实现了那些,大部分是忘却的,我们做到的,是那些微不足道的满足自己生存需要的基本生活技能。同时做为IT工作者而言,制定一个良好的学习路线显得很重要了。
回首过往,曾经一度的学习VB,asp等这些语言;后来又学习java这样的编程语言;接着对学习了网络工程方面和黑客方面的基础知识;到今年又想学习php和mysql数据库方面的东西。真是一样也没有学习好,到现在目前的技能只能在一些小的公司做最基本的网络维护,那些在学校学的网络工程这方面的知识又用到了多少呢?怕是已经忘记得差不多了,对一些子网划分都不记得了。特别是高级路由和交换机的配置,早已经不记得了,在这些公司压根就不需要这些东西,于是就懒惰了,就不知道进步了。
偶尔看看那些和自己同年代的IT工作者们,他们的技术水平和目前的在职岗位都比自己好的多,除了羡慕之外还有什么呢?
自责!
后悔!
所以在这里告诫那些还没有踏出校门的过着衣食无忧的学生们,一定要在走出去之前好好的武装自己,做好自己的职业生涯规划。