Ograniczanie warunku sprawdzania podczas przesyłania plików SWF

Tworzę aplikację do przesyłania plików SWF do folderu za pomocą PHP. Mój skrypt działa, z wyjątkiem pierwszego warunku if, w którym sprawdzam, czy rozszerzenie jest swf, czy nie, ale wydaje mi się, że mam jakiś błąd.

Nie jestem pewien, czyvideo/swf jest poprawnym parametrem sprawdzającym dla plików SWF lub nie. Mój pełny skrypt znajduje się poniżej. Sprawdzam rozmiar pliku SWF za pomocą getimagesize (). Niektórzy ludzie mogą się zastanawiać, że getimagesize działa dla obrazu, ale widziałem kilka przykładów, w których getimagesize () został użyty do uzyskania rozmiaru plików SWF.

Daje mi komunikat „nieprawidłowy plik SWF”, co oznacza, że ​​nie spełnia w ogóle pierwszego warunku sprawdzania.

<code><?php
        foreach($_FILES['item_swf']['tmp_name'] as $key=>$val)
        {

        list($width, $height) = getimagesize($_FILES['item_swf']['tmp_name'][$key]);

        if (( ($_FILES["item_swf"]["type"][$key] == "video/swf") || ($_FILES["item_swf"]["type"][$key] == "video/SWF") )
        && ($_FILES["item_swf"]["size"][$key] < 800000))
           {
                if ($_FILES["item_swf"]["error"][$key] > 0)
                  {
                     echo "Error: " . $_FILES["item_swf"]["error"][$key] . "<br />";
                  }
                else if($width==1000 && $height==328)
                  {
                   if (file_exists('../../swf_folder/header_swf/' . $_FILES["item_swf"]["name"]))
                            {
                               echo $_FILES["item_swf"]["name"][$key] . " already exists. ";
                             }
                   else
                            { 

                               move_uploaded_file($val, '../../swf_folder/header_swf/'.$_FILES['item_swf']['name'][$key]);
                               echo "done";
                        }
                  }
             else 
                 {
                    echo "size doest permit";
                 }  
            }
        else
            {
               echo "Not a valid swf file::";
            }                       

        }
        ?>
</code>

Wiersz podany poniżej

<code>move_uploaded_file($val, '../../swf_folder/header_swf/'.$_FILES['item_swf']['name'][$key]);
</code>

działa idealnie, ponieważ przesyła pliki do dedykowanego folderu, wydaje się, że parametry sprawdzania tylko plików SWF nie są ustawione prawidłowo.

Edytować

Mam moją odpowiedź. Zamiast używaćvideo/swf Muszę użyćapplication/x-shockwave-flash.

Ostatecznym kodem będzie:

<code><?php
        foreach($_FILES['item_swf']['tmp_name'] as $key=>$val)
        {

        list($width, $height) = getimagesize($_FILES['item_swf']['tmp_name'][$key]);

        if (($_FILES["item_swf"]["type"][$key] == "application/x-shockwave-flash") 
        && ($_FILES["item_swf"]["size"][$key] < 800000))
           {
                if ($_FILES["item_swf"]["error"][$key] > 0)
                  {
                     echo "Error: " . $_FILES["item_swf"]["error"][$key] . "<br />";
                  }
                else if($width==1000 && $height==328)
                  {
                   if (file_exists('../../swf_folder/header_swf/' . $_FILES["item_swf"]["name"]))
                            {
                               echo $_FILES["item_swf"]["name"][$key] . " already exists. ";
                             }
                   else
                            { 

                               move_uploaded_file($val, '../../swf_folder/header_swf/'.$_FILES['item_swf']['name'][$key]);
                               echo "done";
                        }
                  }
             else 
                 {
                    echo "size doest permit";
                 }  
            }
        else
            {
               echo "Not a valid swf file::";
            }                       

        }
        ?>
</code>

questionAnswers(2)

yourAnswerToTheQuestion