<!-- 1.文件上传的请求类型必须是POST 2.允许的数据类型必须是:multipart/form-data --> <!-- 如果想在当前的页面处理上传的话,action可能会有一种写法: a.最懒的方式:空,默认为当前脚本 b.最死的方法:当前脚本名 c.最酷的方法: --> <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="542488"> <fieldset> <legend align="center">文件上传</legend> <p><strong>选择文件:<input type="file" name="upload"></strong></p> </fieldset> <p align="center"><button type="submit" name="submit">上传</button></p> </form> <!-- <?php //echo '<pre>'; //pint_r($FILES['upload']['tmp_name']); //?> --> <!-- //$_FILES:它是一个二维数组 //$_FILES:['当前上传文件的控件名称,input[name="upload"]'] //$_FILES:['upload']['name']:文件原始名称 //$_FILES:['upload']['type']:文件类型 //$_FILES:['uplode']['size']:文件大小 //$_FILES:['upload']['tmp_name']:服务器上的临时文件件 --> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { //注意此处的#_SERVER //1.检测是否有文件被上传 if (isset($_FILES['upload'])) { //2.设置一下允许上传的类型 $allow = ['image/jpg','image/jpeg','image/png']; //判断用户文件上传到指定的临时目录:move_ if (in_array($_FILES['upload']['type'],$allow)) { //将用户文件上传到指定的临时目录:move_uploaded_file() if (move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")) { //上传成功 echo '<script>alert(\'上传成功\')</script>'; } //注意此处的是否有完成的括号 } else { echo '<script>alert(\'仅允许上传jpg或png格式的图片\')</script>'; } //注意此处的是否有完成的括号 } //如果上传失败 if ($_FILES['upload']['error'] > 0) { echo '<p>错误的原因是:<strong>'; switch ($_FILES['upload']['error']) { case 1: echo '文件超过了php.ini中的大小'; break; case 2: echo '文件超过表单中的设置大小'; break; case 3: echo '文件只有一部分上传了'; break; case 4: echo '没有文件被上传'; break; case 6: echo '临时文件夹没有'; break; case 8: echo '上传意外终止'; break; } } } ?>
点击 "运行实例" 按钮查看在线实例