文件上传功能是日常生活中经常遇到的,例如注册账号时上传头像,邮箱里上传附件等,下面是简单的一个图片上传功能:
先写form表单,文件样式是flie属性,这里的method如果只是单纯上传文件的话可以写也可以不写,如果有注册账号密码的话就必须写:
<body> <form action="filechuli.php" method="post" enctype="multipart/form-data"><!--数据类型--> 请选择文件:<input type="file" name="file" /> <input type="submit" value="上传" /> </form> </body> </html>
处理页面有个逻辑,就是文件是由客户端传给服务器,由服务器暂时储存,而直把信息传给处理页面,然后再通过处理页面的处理将临时文件保存到指定文件夹:
<?php //取文件信息 $arr = $_FILES["file"]; //加限制条件 //1.文件类型 //2.文件大小 //3.保存的文件名不重复 if(($arr["type"]=="image/jpeg" || $arr["type"]=="image/png") && $arr["size"]<1024000) { //临时文件的路径 //$arr["tmp_name"]; //上传的文件存放的位置 //1.用户名加时间戳 //2.类似网盘,使用文件夹来防止重复 $filename = "./image/".time().$arr["name"]; //保存之前判断该文件是否存在 if(file_exists($filename)) { echo "该文件已存在"; } else { //转换编码格式 $filename = iconv("UTF-8","gb2312",$filename); //移动临时文件到上传的文件存放的位置 //1.临时文件的路径 2.存放的路径 move_uploaded_file($arr["tmp_name"],$filename); } } else { echo "上传的文件大小或类型不正确"; }
最终效果图:
文件夹里就有了这张图片了: