1 文件上传基本案例
form.html文件如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件上传</title> </head> <body> <form action="test.php" method="post" enctype="multipart/form-data"> 用户名:<input type="text" name="user"> 头像:<input type="file" name="pic"> <input type="submit" value="提交"> </form> </body> </html>
test.php文件如下:
<?php if($_FILES['pic']['error'] == 0){ // 1.限制文件上传的大小 $max_size = 2*1024*1024; // 限制上传文件最大值为2M if($_FILES['pic']['size'] > $max_size){ die('文件大小最大不能超过2M'); } // 2.防止文件重名 $file_name = uniqid('si_', false); // 文件名称 $file_suffix = strrchr($_FILES['pic']['name'], '.'); // 文件后缀 $file_upload_root_path = './uploads/'; // 文件上传根路径 // 3.按照年月日格式创建子目录 $file_upload_sub_path = date('Ymd') . '/'; if(!is_dir($file_upload_root_path . $file_upload_sub_path)){ mkdir($file_upload_root_path . $file_upload_sub_path, 0777, true); } $file = $file_upload_root_path . $file_upload_sub_path . $file_name . $file_suffix; // 文件全名 // 4.限制用户上传的文件类型 $allow_type = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg']; if(!in_array($_FILES['pic']['type'], $allow_type)){ die('格式错误,请选择jpg|gif|png类型的图片'); } $finfo = new finfo(FILEINFO_MIME_TYPE); $file_type = $finfo->file($_FILES['pic']['tmp_name']); if(!in_array($file_type, $allow_type)){ die('您上传的格式不正确'); } // 5.执行上传操作 if(move_uploaded_file($_FILES['pic']['tmp_name'], $file)){ echo '上传成功'; }else{ echo '上传失败'; } }else{ echo '上传失败'; }