2012-04-14 4 views
0

ich bin eine Anwendung zum Hochladen von SWF-Dateien in einem Ordner mit PHP erstellen. mein Skript funktioniert alles außer der ersten Wenn-Bedingung, wo ich überprüfe, ob die Erweiterung SWF oder ist nicht ... aber ich habe anscheinend einen Fehler ... ich bin mir nicht sicher, ob video/swf ein gültiger Prüfparameter für SWF-Dateien ist oder nicht ... bitte hilf mir bezüglich dieses Skripts..mein Ful-Skript ist unter unten .. . Ich überprüfe die Größe des swf mit getimagesize(). einige Leute fragen sich vielleicht, dass getimagesize für Bild funktioniert, aber ich sah einige Beispiele, wo getimagesize() verwendet wurde, um die Größe von SWF-Dateien zu erhalten ...Begrenzen der Prüfbedingung beim Hochladen von SWF-Dateien

bitte helfen Sie mir in meinem Skript. Es gibt mir die Nachricht "inavalid SWF-Datei", was bedeutet, dass es die erste Prüfbedingung überhaupt nicht erfüllt.

<?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::"; 
      }      

     } 
     ?> 

die Linie unten angegebenen

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

funktioniert perfekt, da es Dateien auf den speziellen Ordner lädt, so scheint es irgendwie, dass die Kontrollparameter für swf nur Dateien nicht richtig eingestellt sind, bitte helfen Sie mir in dieser Angelegenheit

EDIT

ok bekam ich meine Antwort

ok, ich erhielt meine Antwort ....

statt mit video/swf i application/x-shockwave-flash

so die ultimative Code wird

<?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

'' ../../ ist immer noch eine schlechte Übung .... 'if (($ _FILES [" item_swf "] [" Typ "] [$ key] ==" application/x-shockwave-flash ") && ($ _FILES [" item_swf "] ["size"] [$ key] <800000)) "ist auch keine gute Übung ... woher weißt du genau, was schiefgelaufen ist? – Baba

+0

gut ../../wird benötigt, weil der swf_folder direkt unter der project_fo liegt lder/swf_folder /, während die Skriptdatei unter project_foldet/admin/swfupload/liegt, verwende ich die ../ .. und was auch immer, ich möchte nur die gültige SWF-Datei hinzugefügt werden, wenn weder der Typ noe noch die Größe übereinstimmt es ist total ungültig, ich werde nicht weiter darüber nachdenken müssen – Saswat

+0

Ich habe nicht gesagt, es würde nicht funktionieren .. es ist immer noch eine schlechte Praxis ... ein Pfad würde immer existieren ... – Baba

Antwort

0

ok, ich erhielt meine Antwort ....

statt mit video/swf i application/x-shockwave-flash

so die ultimative Code wird verwenden müssen

<?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

verwenden müssen, können Sie versuchen,

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

Lassen Sie mich wissen, wenn Sie weitere Herausforderungen haben

Verwandte Themen