在PHP中,接收到的文件有其中五个属性,打印文件参数
var_dump($_FILES['img'])
可得到如下图属性
得到的图片文件有 name type tmp_name error size属性
要移动时,我们需要用到 tmp_name
接收到了文件,就可以移动了
$avatar = $_FILES['avatar'];
// 将文件从临时目录移动到网站范围之内
$source = $avatar['tmp_name']; // 源文件在哪
$target = './uploads/' . $avatar['name']; // 目标放在哪
// 移动的目标路径中文件夹一定是一个已经存在的目录
$moved = move_uploaded_file($source, $target);
当然如果单纯的移动的画肯定会出现名字重复的问题,我们可以在移动时给他重命名,取一个随机数
$avatar = $_FILES['avatar'];
// 这个函数得到的是文件的扩展名
$ext = pathinfo($avatar['name'], PATHINFO_EXTENSION);
// => jpg
// 名字中加入随机数
$target = '../uploads/avatar-' . uniqid() . '.' . $ext;
// 移动的目标路径中文件夹一定是一个已经存在的目录
if (!move_uploaded_file($avatar['tmp_name'], $target)) {
$GLOBALS['error_message'] = '上传图片失败';
return;
}