1.文件上传原理
- 文件上传和表单提交可以说是一样的,但是都是需要利用form标签,但是文件上传上传需要在form标签中加入ENCTYPE=”multipart/form-data”属性,表示不要对数据进行编码,一般我们提交的表单都会对数据进行编码的。
- 上传也是通过input标签来获取文件的,这样也会有个name,php可以通过$_FILES[‘name’]获取临时文件,包括文件的位置,原名和大小等详细,在后台可以根据文件名判断是否是合法文件,根据文件位置移动文件到项目的目录。
2.文件上传的实现
2-1.创建表单
<form action="upload.php" method="post" enctype="multipart/form-data" >
name: <input type="text" name="username" value="" /><br>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
up pic: <input type="file" name="pic" value=""><br>
<input type="submit" value="upload" /><br>
</form>
2-2.后台引入文件上传类
//引入类
include "fileupload.class.php";
2-3.实例化对象并配置参数
$up = new fileupload();
//设置属性(上传的位置, 大小, 类型, 名是是否要随机生成)
$up -> set("path", "./images/");
$up -> set("maxsize", 2000000);
$up -> set("allowtype", array('png','jpg'));
$up -> set("israndname", true);
2-4.调用上传方法,失败则判断返回信息
//调用upload方法,根据返回信息判断是否成功
if($up -> upload("pic")) {
echo '<pre>';
//获取上传后文件名子
var_dump($up->getFileName());
}else{
echo '<pre>';
//获取上传失败以后的错误提示
var_dump($up->getErrorMsg());
echo '</pre>';
}
echo '</pre>';
3.上传demo实现
链接:https://share.weiyun.com/6cf127e57ed21372ee36e3909d8f0d10 (密码:vh5J)