php学习——简易文件上传
- 文件上传依然用form表单形式实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>文件上传</title>
</head>
<body>
<form action="t.php" method="post" enctype ="multipart/form-data">
<input type="file" name="picture" />
<input type="submit"/>
</form>
</body>
</html>
其中enctype ="multipart/form-data"是文件上传表单必须使用的。
- 接下来是php设定上传路径:
<?php
header("Content-type:text/html;charset=utf-8");
if(empty($_FILES)){
echo "请上传文件";
}else{
define("PATH",dirname(__DIR__));
$path = PATH."/upload/images";
$dir1=date("Y-m");
$dir2=date("d");
$fullpath=$path."/".$dir1."/".$dir2;
if(is_dir($fullpath)){
echo "上传成功";
}else{
echo "上传成功";
mkdir($fullpath,0777,true);
}
$filetype=strrchr($_FILES["picture"]["name"],".");
$filename="text".$filetype;
move_uploaded_file($_FILES["picture"]["tmp_name"], $fullpath."/".$filename);
}
①如果直接打开./t.php,则_FILES为空值,打印“请上传文件”(也可以用header()跳转回表单那里,就不改了。)
②用dirname()和date()确定一个上传路径,第一次上传还没有创建这个路径,就用mkdir()创建一个。
里面的参数0777和ture好像代表创建方式和权限设置之类的,不写似乎也可以。
③用字符串处理函数strrchr()获取文件的后缀,与规定好的文字(只能用英文字符,不然报错)组合成完整的文件名。
④move_uploaded_file()移动文件的函数,第一个参数确定上传文件的位置,第二个参数是移动至的位置。
$_FILES[“picture”][“tmp_name”]
中tem_name是上传文件时临时存放文件的一个目录,如果不用转移文件函数的话,关掉网页就自动删除了。
下面演示:
文件上传