批改状态:未批改
老师批语:
代码:
<!-- 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方式显示,实在是不知道该怎样做了。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号