我尝试使用php上传和重命名图像文件,但他没有将文件移动到我想要的文件夹中。有人能告诉我代码有什么问题吗?
$filename = $_POST["avatar"];
$expl = explode('.', $filename);
$file_basename = $user; // give new name
$file_ext = $expl[1]; // get file extention
$filesize = $_FILES["avatar"]["size"];
$allowed_file_types = array('gif', 'jpg', 'pjpg', 'png');
$target_dir = "images/avatars/";
$newfilename = $file_basename . '.' . $file_ext;
$target_file = $target_dir . $newfilename;
if (in_array($file_ext, $allowed_file_types) && ($filesize < 2000000000)) {
if (file_exists($target_dir . $newfilename)) {
echo "You have already uploaded this file.";
} else {
move_uploaded_file($_FILES['avatar']['tmp_name'], $target_dir);
if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target_file)) {
echo "There was an error uploading the file, please try again!";
} else {
$avaq = "UPDATE portfoliotext SET avatar = '$newfilename'";
$resava = mysqli_query($conn, $avaq);
echo "File uploaded successfully.";
}
}
} elseif ($filesize > 2000000000) {
echo "The file you are trying to upload is too large.";
} else {
echo "Only these file typs are allowed for upload: " . implode(', ', $allowed_file_types);
}
} else {
echo "Invalid file";
}
答案 0 :(得分:0)
我收到了一些额外的结束括号和额外的else
子句的错误。
也许试试这个:
$filename = $_POST["avatar"];
$expl = explode('.', $filename);
$file_basename = $user; // give new name
$file_ext = $expl[1]; // get file extention
$filesize = $_FILES["avatar"]["size"];
$allowed_file_types = array('gif', 'jpg', 'pjpg', 'png');
$target_dir = "images/avatars/";
$newfilename = $file_basename . '.' . $file_ext;
$target_file = $target_dir . $newfilename;
if (in_array($file_ext, $allowed_file_types) && ($filesize < 2000000000)) {
if (file_exists($target_dir . $newfilename)) {
echo "You have already uploaded this file.";
} else {
move_uploaded_file($_FILES['avatar']['tmp_name'], $target_dir);
if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target_file)) {
echo "There was an error uploading the file, please try again!";
} else {
$avaq = "UPDATE portfoliotext SET avatar = '$newfilename'";
$resava = mysqli_query($conn, $avaq);
echo "File uploaded successfully.";
}
}
} elseif ($filesize > 2000000000) {
echo "The file you are trying to upload is too large.";
} else {
echo "Only these file typs are allowed for upload: " . implode(', ', $allowed_file_types);
}