Я создаю приложение для загрузки swf-файлов в папку с помощью php .. мой скрипт работает, кроме первого условия if, когда я проверяю, является ли расширение swf или нет … но у меня, похоже, есть некоторая ошибка. ..i'm не уверен, является ли video/swf
допустимым параметром проверки для swf-файлов или нет … Пожалуйста, помогите мне в отношении этого скрипта. Мой полный скрипт находится ниже … Я проверяю размер swf используя getimagesize (). некоторые люди могут задаться вопросом, что getimagesize работает для изображения, но я видел несколько примеров, где getimagesize () использовался для получения размера swf-файлов …
пожалуйста, помогите мне в моем сценарии. это дает мне сообщение «inavalid swf file», что означает, что он не удовлетворяет первому условию проверки вообще.
<?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::"; } } ?>
приведенная ниже строка
move_uploaded_file($val, '../../swf_folder/header_swf/'.$_FILES['item_swf']['name'][$key]);
отлично работает, поскольку он загружает файлы в выделенную папку, так или иначе кажется, что параметры проверки только для файлов SWF не установлены должным образом, пожалуйста, помогите мне в этом вопросе
РЕДАКТИРОВАТЬ
хорошо, я получил свой ответ
хорошо, я получил свой ответ ….
вместо использования video/swf
мне нужно использовать application/x-shockwave-flash
поэтому окончательный код будет
<?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::"; } } ?>
можешь попробовать
$savePath = "PATH_TO_SAVE"; $errors = array (); $output = array (); // if (isset ( $_FILES ['item_swf'])) { foreach ( $_FILES ['item_swf'] ['tmp_name'] as $key => $val ) { $fileName = $_FILES ['item_swf'] ['name'] [$key]; $fileSize = $_FILES ['item_swf'] ['size'] [$key]; $fileTemp = $_FILES ['item_swf'] ['tmp_name'] [$key]; $fileExtention = pathinfo ( $fileName, PATHINFO_EXTENSION ); $fileExtention = strtolower ( $fileExtention ); if ($fileExtention != ".swf") { $errors [$fileName] [] = "Invalid File Extention"; continue; } if ($fileSize > 800000) { $errors [$fileName] [] = "File Too large"; continue; } list ( $width, $height ) = getimagesize ( $fileTemp ); if ($width != 1000 && $height != 328) { $errors [$fileName] [] = "Wrong File dimention "; continue; } if (file_exists ( $savePath . DIRECTORY_SEPARATOR . $fileName )) { $errors [$fileName] [] = "File Exist"; continue; } if(!is_writable($savePath )) { $errors [$fileName] [] = "File Destination not writeable"; } if(count($errors [$fileName]) == 0) { if(@move_uploaded_file ( $fileTemp, $savePath . DIRECTORY_SEPARATOR . $fileName)) { $output[$fileName] == "OK" ; } else { $errors [$fileName] [] = "Error Saving File"; } } } var_dump($errors, $output); }
Дайте мне знать, если у вас есть еще одна проблема
хорошо, я получил свой ответ ….
вместо использования video/swf
мне нужно использовать application/x-shockwave-flash
поэтому окончательный код будет
<?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"]["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::"; } } ?>