Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP - Upload mp3-Dateien

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP - Upload mp3-Dateien

    Hallo zusammen,

    ich hoffe, dass ich hier Hilfe finden werde.
    Ich versuche, über ein PHP-Skript mp3-Dateien auf meinen Raspberry hochzuladen. Zum Anfang habe ich es mit Bildern versucht, was auch ohne Probleme funktioniert. Nun versuche ich, das Skript für mp3-Dateien zu erweitern, was leider nicht funktioniert.
    Habe nun schon verschiedenste Lösungen versucht. Bin langsam am Verzweifeln.
    Danke für eure Hilfe.

    Hier mein Skript:
    PHP-Code:


        <?php
         
        $allowedExts 
    = array("jpg""jpeg""gif""png""mp3""mp4""wma");
        
    $extension pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
         
        if (((
    $_FILES["file"]["type"] == "video/mp4")
        || (
    $_FILES["file"]["type"] == "audio/mp3")
        || (
    $_FILES["file"]["type"] == "audio/wma")
        || (
    $_FILES["file"]["type"] == "image/pjpeg")
        || (
    $_FILES["file"]["type"] == "image/gif")
        || (
    $_FILES["file"]["type"] == "image/jpeg"))
         
        && (
    $_FILES["file"]["size"] < 20000000000000)
        && 
    in_array($extension$allowedExts))
         
          {
          if (
    $_FILES["file"]["error"] > 0)
            {
            echo 
    "Return Code: " $_FILES["file"]["error"] . "<br />";
            }
          else
            {
            echo 
    "Upload: " $_FILES["file"]["name"] . "<br />";
            echo 
    "Type: " $_FILES["file"]["type"] . "<br />";
            echo 
    "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
            echo 
    "Temp file: " $_FILES["file"]["tmp_name"] . "<br />";
         
            if (
    file_exists("upload/" $_FILES["file"]["name"]))
              {
              echo 
    $_FILES["file"]["name"] . " already exists. ";
              }
            else
              {
              
    move_uploaded_file($_FILES["file"]["tmp_name"],
              
    "upload/" $_FILES["file"]["name"]);
              echo 
    "Stored in: " "upload/" $_FILES["file"]["name"];
              }
            }
          }
        else
          {
          echo 
    "Invalid file";
          }
        
    ?>

  • #2
    Was ist denn passiert? Gab es ne Fehlermeldung oder ist das script einfach abgebrochen?
    Nützliches:

    Kommentar


    • #3
      Hallo,
      danke für die schnelle Antwort. Ausgabe ist: "invalid file".

      Kommentar


      • #4
        dann setz doch bitte ein var_dump($_FILES['file']) in die dritte zeile und du siehst welche der drei bedingungen nicht erfüllt werden. oder du fragst sie seperat ab.

        Kommentar


        • #5
          Das ist die Ausgabe die raus kommt.

          array(5) { ["name"]=> string(40) "04 - Die Toten Hosen - Auswärtsspiel.mp3" ["type"]=> string(10) "audio/mpeg" ["tmp_name"]=> string(14) "/tmp/phpN6wOXg" ["error"]=> int(0) ["size"]=> int(7161597) } Invalid file

          Kommentar


          • #6
            Zitat von Julian2805 Beitrag anzeigen
            ["type"]=> string(10) "audio/mpeg"
            Da fällt dir nix auf?
            Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

            Kommentar


            • #7
              Doch schon. Aber was läuft denn da schief?

              Kommentar


              • #8
                PHP-Code:
                    if ((($_FILES["file"]["type"] == "video/mp4"
                    || (
                $_FILES["file"]["type"] == "audio/mp3"
                    || (
                $_FILES["file"]["type"] == "audio/wma"
                    || (
                $_FILES["file"]["type"] == "image/pjpeg"
                    || (
                $_FILES["file"]["type"] == "image/gif"
                    || (
                $_FILES["file"]["type"] == "image/jpeg")) 
                ["type"]=> string(10) "audio/mpeg"
                Jetzt vielleicht?
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Ungetestet:
                  PHP-Code:
                  class UploadValidator {
                      
                      protected 
                  $extensions = array();
                      protected 
                  $mimeTypes = array();
                      
                      public function 
                  __construct(array $extensionMimeTypeConfig)
                      {
                          foreach ( 
                  $extensionMimeTypeConfig as $extension => $mimeTypes ) {
                              
                  $mimeTypes array_map('strtolower', (array) $mimeTypes);
                              
                  $extension strtolower(ltrim($extension'.'));
                              
                              
                  $this->extensions[] = $extension;
                              
                              foreach ( 
                  $mimeTypes as $mimeType ) {
                                  
                  $this->mimeTypes[$mimeType][] = $extension;
                                  
                  $this->mimeTypes[$mimeType] = array_unique($this->mimeTypes[$mimeType]);
                              }
                          }
                      }
                      
                      public function 
                  validate($fileName$identifiedMimeType)
                      {
                          
                  $extension strtolower(pathinfo($fileNamePATHINFO_EXTENSION));
                          
                  $mimeType strtolower($identifiedMimeType);
                          
                          if ( ! 
                  in_array($extension$this->extensions) ) {
                              throw new 
                  BadFileExtensionException(
                                  
                  $extension.' is not allowed'
                              
                  ); 
                          }
                          
                          if ( ! 
                  array_key_exists($mimeType$this->mimeTypes) ) {
                              throw new 
                  BadMimeTypeException(
                                  
                  $mimeType.' is not allowed'
                              
                  );
                          }
                          
                          if ( 
                  in_array($extension$this->mimeTypes[$mimeType]) ) {
                              throw new 
                  BadUploadException(
                                  
                  'Given mime type does not fit the file extension requirement'
                              
                  );
                          }
                          
                          return 
                  true;
                      }
                      
                  }

                  class 
                  BadFileExtensionException extends DomainException {}
                  class 
                  BadMimeTypeException extends DomainException {}
                  class 
                  BadUploadException extends RuntimeException {} 
                  Handhabung:
                  PHP-Code:
                  $config = array(
                      
                  'jpg' => array('image/jpeg''image/pjpeg'),
                      
                  'jpeg' => array('image/jpeg''image/pjpeg'),
                      
                  'jpe' => array('image/jpeg''image/pjpeg'),
                      
                  'gif' => 'image/gif',
                      
                  'png' => 'image/png',
                      
                  'mp3' => array('audio/mpeg''audio/mpa''audio/mpa-robust''audio/mpeg-3'),
                      
                  'mp4' => array('audio/aac''audio/aacp''audio/mp4'),
                      
                  'aac' => array('audio/aac''audio/aacp''audio/mp4'),
                      
                  '3gp' => array('audio/aac''audio/aacp''audio/mp4'),
                      
                  'm4a' => array('audio/aac''audio/aacp''audio/mp4'),
                      
                  'm4b' => array('audio/aac''audio/aacp''audio/mp4'),
                      
                  'mpg' => array('audio/aac''audio/aacp''audio/mp4'),
                      
                  'mpeg' => array('audio/aac''audio/aacp''audio/mp4'),
                  );

                  $validation = new UploadValidator($config);
                  $validation->validate($_FILES['foo']['name'], $_FILES['foo']['type']); 
                  Du brichst dir sonst noch die Finger wenn du multi-uploads programmierst oder die Liste sich erweitert..

                  Schöne Weihnachtszeit.
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar

                  Lädt...
                  X