网站经常有上传文件到服务器的需求,如下代码:
<html> <body> <form action="do_file.php" method="post" enctype="multipart/form-data"> //enctype 属性规定了在提交表单时要使用哪种内容类型。如果是二进制文件,必须使用 "multipart/form-data"。 <label for="file">Filename:</label> <input type="myfile" name="file" id="file" /> <br /> <input type="submit" name="submitBtn" value="Submit" /> </form> </body> </html>
编写do_file.php来处理上传请求,$_FILES可以获取上传的文件,如代码:
<?php /** * $_FILES是php中存储各种与上传文件相关的信息,其他的数据还是要用$_POST去获取 * $_FILES['myfile']['name'] 其中的myfile为前台form表单提交过来的name,客户端及其文件的文件名,包括拓展名 * $_FILES['myfile']['size'] 上传文件的大小,单位为字节 * $_FILES['myfile']['tmp_name'] 文件上传成功后,在服务器端存储的临时文件名 * $_FILES['myfile']['error'] 文件上传产生的错误信息,0正常;1文件超出php规定大小;2文件超出html规定的大小;3文件只被部分上传;4文件没有被上传 */ $fileMaxSize = 10001000; //允许最大的文件为10001000B $allowType = array("jpg", "png", "gif", "jpeg", "ico");//允许的文件拓展名 /** * php还提供is_uploaded_file(string filename)和move_uploaded_file(string filename, string destination) * is_uploaded_file()函数用来检测指定的文件是否是上传的文件,注意这个函数的参数应该是$_FILES['myfile']['tmp_name'],而不是$_FILES['myfile']['name'] * move_uploaded_file()函数用来将临时目录里的上传文件,移动到指定的位置 */ if(is_uploaded_file($_FILES['myfile']['tmp_name'])) { $userFileNames = explode(".", $_FILES['myfile']['name']); $userFileNameLast = array_pop($userFileNames); if(!in_array($userFileNameLast, $allowType)) die("对不起,拓展名不正确"); if($_FILES['myfile']['size'] > $fileMaxSize) die("对不起,文件过大"); $saveFileName = date("YmdHis").".".$userFileNameLast; move_uploaded_file($_FILES['myfile']['tmp_name'], "/home/youthflies/work/workspace/php/test/".$saveFileName); } else { die("文件非法"); } echo "上传成功"; ?>
版权声明
本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。
© 空空博客,本文链接:https://www.yeetrack.com/?p=65
近期评论