上传文件在php开发中是一个非常普遍的功能,在日常开发中也是非常常见的,在php实现文件上传的功能比在其他的语言要简单的多,本节就是介绍文件上传的函数和多文件上传!
那么在上一篇文章《php文件上传-配置php.inn文件以及预定义变量$_FILES》中我们介绍了文件上传要配置php.ini文件,这是文件上传必要的一步以及预定义变量的介绍,还没有阅读的小伙伴可以去详细的阅读下,对阅读下面的文章有一定的帮助。
文件上传函数
PHP中 使用 move_uploaded_file()函数来上传文件,该函数的语法格式如下:
bool move_uploaded_file ( string $filename , string $destination )
move_uploaded_file()函数是将上传文件储存到指定位置。如果成功,那么就会返回true,否则返回false。 参数 filename是上传文件的临时文件名,就是$S_FILES[tem_name];参数 destination 是上传后保存的新的路径和名称。
立即学习“PHP免费学习笔记(深入)”;
这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。
注意:
move_uploaded_file() 对安全模式和 open_basedir 都是敏感的。不过,限制只针对 destination 路径,因为允许移动上传的文件名 filename 可能会与这些限制产生冲突。move_uploaded_file() 仅作用于通过 PHP 上传的文件以确保这个操作的安全性。
下面的实例创建一个上传表单,允许上传文件大小为 1MB 一下的文件,具体的示例代码如下:
<html><body> <!--上传表单,有一个上传文件域--> <form method="post" action="" enctype="multipart/form-data" name="form"> <input type="file" name="up_file"> <!-- 提交按钮--> <input type="submit" name="submit" value="上传"></form></body></html><?phpheader("Content-Type:text/html; charset=utf-8");if(!empty($_FILES['up_file']['name'])){ //判断是否有文件 $fileinfo = $_FILES['up_file']; //将文件信息赋给变量$fileinfo if($fileinfo['size']<1000000 && $fileinfo['size']>0){ //判断文件大小 move_uploaded_file($fileinfo['tmp_name'],$fileinfo['name']); //上传文件 echo "上传成功"; }else{ echo '文件太大或未知'; }}?>
选择一个文件上传,输出结果如下:
说明:
使用 move_uploaded_file()函数上传文件,在创建 form表单时,必须设置 form 表单的 enctype="multipart/form-data“。
上传文件函数我们就介绍到这里,下一篇我们来介绍多文件上传,具体内容请阅读《PHP文件上传-多文件上传的示例代码详解》!