PHP文件上传及注意事项
1.form表单通过action指向php页面进行提交
下面是form.html页面
<!doctype html> <html> <head> <meta charset="utf-8"> </head> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data" id="form-data"> <label for="file">请选择要上传的文件</label> <input type="file" name="file" id="file"> <input type="submit" name="sub" value="上传"> </form> </body> </html>
form的enctype属性是用来规定发送到服务器之前应该如何对表单进行编码,默认值为application/x-www-form-urlencoded,会对所有数据字符进行编码,但是如果要表单包含上传大文件,则必须改为multipart/form-data,即不对数据字符编码。
2.点击上传提交到php页面处理文件
下面是upload_file.php页面
<?php header("content_type: text/html;charset=utf-8");//规定编码格式为utf-8 $allowedExts = array("txt"); //包含允许上传的文件的后缀名的数组 $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); //获取文件的后缀名 if($_FILES["file"]["type"] == "text/plain" && in_array($extension,$allowedExts)){ //判断文件的格式以及后缀名是否符合上传要求 if($_FILES["file"]["error"]>0){ //判断文件是否损坏 echo "错误:".$_FILES["file"]["error"]."<br>"; }else{ echo "上传文件名:".$_FILES["file"]["name"]."<br>"; echo "文件类型:".$_FILES["file"]["type"]."<br>"; echo "文件大小:".$_FILES["file"]["size"]."<br>"; echo "文件临时存储位置:".$_FILES["file"]["tmp_name"]."<br>"; if(file_exists("/home/acer/下载/upload/".$_FILES["file"]["name"])){ //判断文件是否存在 echo $_FILES["file"]["name"]."文件已存在。"; }else{ move_uploaded_file($_FILES["file"]["tmp_name"], "/home/acer/下载/upload/".$_FILES["file"]["name"]); //存储文件 echo "文件存储在:"."/home/acer/下载/upload/".$_FILES["file"]["name"]."<br>"; } } }else{ echo "非法大文件格式"."<br>"; }
其中“/home/acer/下载/upload/”是存储文件夹的跟路径,
“text/plain”是文件类型,详见https://www.cnblogs.com/wang1204/p/5644827.html
效果如下