实验环境:php
实验要求:仅能上传jpg格式的文件,且不得大于20K
实验步骤:
一、html代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta charset="utf-8">
</head>
<body>
<!--multipart/form-data 表示对上传的文件不进行编码处理-->
<form action="fileupload.php" method="POST"enctype="multipart/form-data">
<input type="file" name="uploadfile">
<input type="submit">
</form>
</body>
</html>
二、php代码如下:
<?php
header("Content-Type:text/html;charset=utf-8");
if (isset($_FILES["uploadfile"])){
$uploadfile=$_FILES["uploadfile"];
//将上传的文件从临时目录移动到当前web目录(当前目录下的uoload目录)
$filename=$uploadfile["tmp_name"];
//需求一:限制文件上传的后缀名 为jpg格式
$name=$uploadfile["name"];
//a.获取后缀名 如果不是jpg,直接结束
$extpos=strpos($name,".");//该函数可获得小数点的位置
$ext=substr($name,$extpos+1);
if ($ext !="jpg"){
echo "上传文件类型失败";
die();
}
//需求二:限制文件上传大小为2M
$filesize=$uploadfile["size"];
if ($filesize>1024*20){
echo "文件过大,上传失败";
die();
}
$destination="upload/".$uploadfile["name"];
//上传中文件名乱码 将文件名从utf-8编码转换为gbk编码
$destination=iconv("utf-8","gbk",$destination);
//上传一些文件报错 上传的路径采用绝对路径
move_uploaded_file($filename,$destination);
}
三、执行html文件
1.上传php格式的文件,显示上传文件类型失败
2.上传一个大于20k的文件,提示“文件过大,上传失败”