2012-04-14 63 views
0

我創建使用PHP的文件夾中上傳SWF文件的應用程序.. 我的劇本是除了第一個所有工作,如果在那裏我檢查擴展是否SWF或條件不是......但我似乎有一些錯誤...我不確定video/swf是否是一個有效的SWF文件檢查參數...請幫我關於這個腳本..我的腳本是在下面.. 。我正在使用getimagesize()檢查swf的大小。有些人可能不知道的是和getimagesize適用於圖片,但我看到了一些例子,其中和getimagesize()已被用於獲取的SWF文件的大小...限制檢查狀態,同時上傳的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::"; 
      }      

     } 
     ?> 
+0

''../../仍然是不好的做法....'如果(($ _FILES [ 「item_swf」] [ 「型」] [$關鍵] == 「應用程序/ x - 衝擊波閃光」) &&($ _FILES [ 「item_swf」] [「大小」] [$關鍵] <800000))'也不是一個很好的做法......你怎麼知道到底出了什麼問題 – Baba 2012-04-14 08:31:25

+0

以及../../is需要東陽的swf_folder是直接project_fo下lder連續/ swf_folder /,而腳本文件正在project_foldet /管理/ SWFUpload的/所以我用了../ ..和什麼的,我只是想添加的有效swf文件,如果沒有的類型NOE大小相匹配,然後其總共無效,我不需要進一步思考 – Saswat 2012-04-14 08:36:53

+0

我沒有說它不會工作..它仍然是一個糟糕的做法...一條道路將永遠存在... – Baba 2012-04-14 08:45:40

回答

0

好了,我得到了我的答案....

,而不是使用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::"; 
      }      

     } 
     ?> 
1

你可以嘗試

$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); 
} 

讓我知道,如果您有任何更多的挑戰