Этот скрипт PHP отлично работает с аудиофайлами, но когда я изменил его для обработки видеофайлов, он продолжает присылать мне ошибку «Это запрещено». Вот мой код:
$file = $_POST['filev'];
$fileName = $_FILES['filev']['name'];
$fileTmpName = $_FILES['filev']['tmp_name'];
$fileSize = $_FILES['filev']['size'];
$fileError = $_FILES['filev']['error'];
$fileType = $_FILES['filev']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('mp4', 'MP4', 'mpeg', 'wmv', 'ogg', 'webM', 'mov', 'swf');
if (in_array($fileActualExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize < 75000000000000000) {
$fileNameNew = uniqid('', true).".".$fileActualExt;
//insert post
$fileDestination = 'uploads/'.$fileNameNew;
move_uploaded_file($fileTmpName, $fileDestination);
$query = mysqli_query($this->con, "INSERT INTO posts
VALUES('', '$fileDestination', '$added_by', '$user_to', '$date_added', 'no',
'no', '0')");
$returned_id = mysqli_insert_id($this->con);
//update post count for user
$num_posts = $this->user_obj->getNumPosts();
$num_posts++;
$update_query = mysqli_query($this->con, "UPDATE
users SET num_posts='$num_posts' WHERE username='$added_by'");
header("Location: video.php?success");
} else {
echo "Your file is too big";
}
} else {
echo "There was an error uploading your file";
}
}
else {
echo "This is not allowed";
}
Файл, который я пытался загрузить, является файлом mp4, но он по-прежнему дает мне сообщение «Это недопустимая ошибка», хотя я включил его в переменную $ allowed. Любая помощь в решении моей проблемы будет принята с благодарностью.
да, это был mp4
Не могли бы вы добавить var_dump($fileActualExt); сразу после $fileActualExt = strtolower(end($fileExt)); и опубликовать то, что отображается точно, как оно отображается?
Кроме того, странно, что ваш массив $allowed содержит строки с символами в верхнем регистре, учитывая, что вы используете strtolower() в строке для проверки
Он напечатал это: строка (0) ""






Попробуйте поместить .flv в переменную $ allowed
вы распечатали
$fileActualExt, чтобы убедиться, что это действительноmp4?