Correction status:Uncorrected
Teacher's comments:
代码:
<!-- 1.文件上传的请求类型必须是post 2.允许的数据类型必须是:multipart/form-data 如果想在当前页面处理上传的话,action可能会有三种写法: 1.最懒的方式就是:空 ,默认当前脚本 2.最死的方式:当前脚本名 3.最酷的方式:下 --> <style type="text/css"> form{ width: 60%; /*height: 200px;*/ margin: auto; background-color: lightpink; } input{ margin-left: 30px; } </style> <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>选择文件:</strong><input type="file" name="upload" id="file"></p> </fieldset> <p align="center"><button type="submit" name="submit">上传</button></p> </form> <?php // $_FILES:它是一个二维数组 // $_FILES['当前上传文件的控件名称:input[name="upload"]']//一维 // mkdir('upload') or die('创建目录失败'); // //二维 // $_FILES['upload']['name']:文件原始名称 // $_FILES['upload']['type']:文件类型 // $_FILES['upload']['size']:文件大小 // $_FILES['upload']['tmp_name']:服务器上的临时文件夹 // $_FILES['upload']['error']:错误代码 if($_SERVER['REQUEST_METHOD'] == 'POST'){ //1.检测文件是否被上传 if(isset($_FILES['upload'])){ //2.设置:允许上传的文件类型 $allow = ['image/jpj','image/jpeg','image/png']; // 判断用户上传的文件类型是否正确 if(in_array($_FILES['upload']['type'], $allow)) { //3.将用户文件上传到指定的临时目录:move_uploaded_file() if(move_uploaded_file($_FILES['upload']['tmp_name'], "upload/{$_FILES['upload']['name']}")){ //4.上传成功 echo "<script><span style='color:green'>上传成功</span></script>"; } }else{ echo '<script><span style="color:red">没有文件</span></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; default: echo '未知错误'; break; } echo '</strong></p>'; //保险起见,最好把创建的临时文件删除,当然系统也会在结束会话时自动清空 //file_exists判断文件是否存在 if(file_exists($_FILES['upload']['tmp_name']) && is_file($_FILES['upload']['tmp_name'])){ unlink($_FILES['upload']['tmp_name']); } } } ?> <!-- <script type="text/javascript" src="js/js.js"></script> <script type="text/javascript"> $('button').click(function(){ $.ajax({ url : '', type : 'POST', // dataType : 'json', async : true, data :'name='+$_FILES['upload'], success: function(res){ $('p').append($(res)) } }) } </script> -->
点击 "运行实例" 按钮查看在线实例
备注:提示信息全部采用Ajax方式显示,实在是不知道该怎样做了。