загрузка аудио-файла из Mozilla Firefox в PHP не работает - PullRequest
0 голосов
/ 11 мая 2019

когда я загружаю аудиофайл с помощью Chrome, он загружается свободно без каких-либо ошибок, но когда я загружаю его в Firefox, он не выдает ошибку, но не загружает мой файл, либо это мой код

$allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma");
          $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
          if ((
            ($_FILES["file"]["type"] == "audio/mp3")
            || ($_FILES["file"]["type"] == "audio/wma")
            )
            && in_array($extension, $allowedExts))
          {
            $temp = explode(".", $_FILES["file"]["name"]);
            $audio = date('YmdHis') . '.' . end($temp);
            move_uploaded_file($_FILES["file"]["tmp_name"],
            "uploads/top_songs/" . $audio);
          }
          else{
            $audio = "";
          }

1 Ответ

1 голос
/ 11 мая 2019

Mozilla Firefox предоставляет audio/mpeg MIME-тип для mp3-файлов в соответствии со стандартом RFC 3003 , в отличие от хрома, который дает audio/mp3.

. Правильное решение будет

$allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma");
$allowedMimes = array("audio/mp3", "audio/wma", "audio/mpeg");
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if(in_array($_FILES["file"]["type"], $allowedMimes) && in_array($extension, $allowedExts)){
    $temp = explode(".", $_FILES["file"]["name"]);
    $audio = date('YmdHis') . '.' . end($temp);

    move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/top_songs/" . $audio);
}else{
    $audio = "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...