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>