2017-06-26 118 views
0

我已经尝试了几次现在,这是最接近,我想我得到它正常工作。我在其他地方有类似的代码,它工作正常,但是当我执行这个时,mime_content_type不会返回任何东西。我试图用很多不同的方式让它工作,让我知道你是否看到我忽略的东西。PHP mime_content_type没有返回任何东西

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>'; 
       } 
      } 

回答

0

根据文档,mime_content_type将文件名作为输入参数。

在您的示例中,您正在实例化传递到mime_content_type()函数的新image_handler()对象。

我相信你应该在你的课堂上有一个方法来获取文件路径。

事情是这样的:

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

$m = mime_content_type ($filename);