前端页面
(这里需要注意的是 form表单有一个属性 : enctype-multipart/form-data 必须要填上,
这样可以保证PHP页面使用$_FILES可以接收到数据)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件上传页面</title> </head> <body> <h1>文件上传</h1> <hr> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="load"> <br> <input type="submit" value="上传"> </form> </body> </html>
PHP数据处理页面
(主要使用 move_upload_file 来移动服务器临时存储地址的文件,到自己需要的地方去)
<?php /* * 表单提交后的处理文件 **/ $source = $_FILES["load"]["tmp_name"]; //源文件 $target = null; //目标文件 //获取文件上传的类型,这里获取到的是 / 前面的值 $filetype = array_shift(explode("/",$_FILES["load"]["type"])); //获取文件上传的类型,这里获取到文件的全类型 $filet = $_FILES["load"]["type"]; //允许文件上传的类型 $arr = array("image/jpeg","text/plain","image/png"); //限制文件上传类型 if(in_array($filet,$arr)){ //限制上传大小 if($_FILES["load"]["size"] < 204800) { if ($filetype == "image") { global $target; $target = "imgs/" . $_FILES["load"]["name"]; //修改目标文件地址 $MOM = move_uploaded_file($source, $target); } else { $target = "files/" . $_FILES["load"]["name"]; //修改目标文件地址 $MOM = move_uploaded_file($source, $target); } }else{ echo "文件上传大小超过200k"; } }else{ echo "文件上传类型不匹配"; } //判断是否上传成功 if($MOM){ echo "<script>alert('上传成功')</script>"; }else{ echo "<script>alert('上传失败')</script>"; } ?>
多文件上传
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="test38.php" method="post" enctype="multipart/form-data"> <input type="file" name="file[]"><br> 上传多个相同名文件的时候,名字后边要加上 [] 否则就视为一个 <input type="file" name="file[]"><br> <input type="file" name="file[]"><br> <input type="file" name="file[]"><br> <input type="submit" value="上传"> </form> </body> </html>
<?php echo "<pre>"; print_r($_FILES); echo "</pre>"; $files = count($_FILES["file"]["name"]); //得出一共上传了多少个文件 for($i=0;$i<$files;$i++){ $tmpfile = $_FILES["file"]["tmp_name"][$i]; //上传到的文件。地址为系统临时文件 $dstfile = "doc/".$_FILES["file"]["name"][$i]; //要修改的文件的地址和文件名 move_uploaded_file($tmpfile,$dstfile); //将临时文件从系统中取出存放到指定位置 } ?>
165

被折叠的 条评论
为什么被折叠?



