<?php 

/** 
 * Project:     SmartyValidate: Form Validator for the Smarty Template Engine 
 * File:        validate_criteria.isMimeType.php 
 * Author:      Iarfhlaith Kelly <ik at webstrong dot net> 
 * Company:      Webstrong Internet Solutions 
 * Link:      www.webstrong.net 
 * 
 * This library is free software; you can redistribute it and/or 
 * modify it under the terms of the GNU Lesser General Public 
 * License as published by the Free Software Foundation; either 
 * version 2.1 of the License, or (at your option) any later version. 
 * 
 * This library is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 * Lesser General Public License for more details. 
 * 
 * You should have received a copy of the GNU Lesser General Public 
 * License along with this library; if not, write to the Free Software 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 * 
 * @link http://www.phpinsider.com/php/code/SmartyValidate/ 
 * @copyright 2001-2005 New Digital Group, Inc. 
 * @author Monte Ohrt <monte at newdigitalgroup dot com> 
 * @package SmartyValidate 
 */ 

/** 
 * test if a value is a valid MIME type. This checks the actual MIME 
 * type of the file. 
 * 
 * @param string $value the value being tested 
 * @param boolean $empty if field can be empty 
 * @param array params validate parameter values 
 * @param array formvars form var values 
 */ 
function smarty_validate_criteria_isMimeType($value, $empty, &$params, &$formvars) { 
    
   $_field = $params['field']; 
    $_type  = isset($params['field2']) ? $params['field2'] : $params['type']; 
    
    if(!isset($_FILES[$_field])) 
        // nothing in the form 
        return false; 
    
    if($_FILES[$_field]['error'] == 4) 
        // no file uploaded 
        return $empty; 

    $_types = preg_split('![\s,]+!', $_type, -1, PREG_SPLIT_NO_EMPTY); 
    
    foreach($_types as $_key => $_val) { 
        $_types[$_key] = strtolower($_types[$_key]); 
    } 
        
    if(!in_array(strtolower($_FILES[$_field]['type']),$_types)) 
        // not valid MIME type 
        return false; 
        
    return true; 
} 

?> 