2017-06-26 4 views
0

Ich habe es schon ein paar Mal versucht, und das ist das nächste, was ich denke, dass ich es richtig hinbekomme. Ich habe ähnlichen Code an anderer Stelle und es funktioniert ordnungsgemäß, aber wenn ich diesen Code ausführe, gibt der mime_content_type nichts zurück. Ich habe versucht, es auf viele verschiedene Arten zum Laufen zu bringen, lass es mich wissen, wenn du etwas siehst, das ich übersehe.PHP mime_content_type gibt nichts zurück

for($i = 0; $i < 5; ++ $i) { 

       $mime = false; 

       if (preg_match ('/(jpeg|png|gif|jpg|jpe)/i', $_FILES ['listing'] ['type'] ['images'] [$i])) { 

        $new_image = new image_handler ($_FILES ['listing'] ['tmp_name'] ['images'] [$i]); 

        $m = mime_content_type ($new_image); 

        if ($m == 'image/png' || $m == 'image/jpeg' || $m == 'image/gif') { 
         $mime = true; 
        } 

        if ($mime) { 
         $new_images [$i] ['name'] = date ('ymdgis') . $_FILES ['listing'] ['name'] ['images'] [$i]; 
         $new_images [$i] ['default'] = ($_POST ['listing'] ['default_image'] == $i) ? true : false; 

         $new_image->save (IMAGE_SIZE, IMAGE_SIZE, REAL_PATH . 'uploads/listings/' . $new_images [$i] ['name']); 
         $new_image->save (THUMB_SIZE, THUMB_SIZE, REAL_PATH . 'uploads/listings/thumbnails/' . $new_images [$i] ['name']); 
        } 
       } elseif ((! preg_match ('/(jpeg|png|gif|jpg|jpe)/i', $_FILES ['listing'] ['type'] ['images'] [$i])) && ($_FILES ['listing'] ['name'] ['images'] [$i] != '')) { 
        $pass_message .= '<p>The File ' . $_FILES ['listing'] ['name'] ['images'] [$i] . ' was not uploaded due to its filetype.</p>'; 
       } 
       if (! $mime && ($_FILES ['listing'] ['name'] ['images'] [$i] != '')) { 
        $pass_message .= '<p>The File ' . /*$_FILES ['uploads'] ['name'] ['image']*/ $m . ' was not uploaded due to its mime type.</p>'; 
       } 
      } 

Antwort

0

Gemäß der Dokumentation nimmt mime_content_type die Dateinamen als einen Eingabeparameter.

In Ihrem Beispiel instanziieren Sie ein neues image_handler() -Objekt, das Sie an die Funktion mime_content_type() übergeben.

Ich glaube, Sie sollten eine Methode in Ihrer Klasse haben, um den Dateipfad zu bekommen.

Etwas wie folgt aus:

$new_image = new image_handler ($_FILES ['listing'] ['tmp_name'] ['images'] [$i]); 
$filename = $new_image->get_filename_method(); 

$m = mime_content_type ($filename);