Respostas:
$form['picture']['file'] = array(
'#type' => 'managed_file',
'#title' => t('picture'),
'#description' => t('Allowed extensions: gif png jpg jpeg'),
'#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
'#upload_location' => variable_get('picture_upload_location'),
'#upload_validators' => array(
'file_validate_extensions' => array('gif png jpg jpeg'),
// Pass the maximum file size in bytes
'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
),
);
$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Não tenho certeza se você está usando o Drupal 6 ou o Drupal 7, mas no Drupal 6 você escolheria:
Admin > Conteúdo > Tipos de conteúdo > [Seu tipo de conteúdo]> Gerenciar campos > [Editar seu campo de arquivo] e procure a configuração de campo "Extensões de arquivo de upload permitidas"
Nesse campo, insira zip
Drupal 7 é provavelmente semelhante. Procure Tipos de conteúdo em Admin > Estrutura .