在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; }