No es el enfoque correcto, ya que estás en una página de edición de post (cpt), los metabox son campos agrupados simples que se adjuntan al formulario de post y en tu caso, en realidad es el navegador el que filtra los atributos de formulario de tu metabox y no WordPress ya que está creando formularios anidados que es algo que simplemente no puede hacer.
Un mejor enfoque sería no tener la forma dentro de un metabox, pero aquí afuera hay un ejemplo que usa la caja nativa:
Primero agregue el botón para lanzar la caja gruesa:
//add the button to lanch the thickbox
add_action( 'media_buttons','add_vimeo_upload_button',100);
function add_vimeo_upload_button(){
global $pagenow,$typenow;
if (!in_array( $pagenow, array( 'post.php', 'post-new.php' ) ))
return;
echo '<a href="#TB_inline?height=155&width=300&inlineId=vimeo_upload" class="thickbox"><img src="http://i.imgur.com/5hyoa.png"alt="Upload to vimeo"></a>';
}
Agregar formulario html fuera del formulario de publicación ex:
//add form html outside post form
add_filter('admin_footer','vimeo_upload_form');
function vimeo_upload_form(){
global $pagenow,$typenow;
if (!in_array( $pagenow, array( 'post.php', 'post-new.php' )))
return;
//once we get here we are on the right page so we echo form html:
?>
<div id="vimeo_upload" style="display:none">
<form method="POST" action="vimeo/url">
<p><label>Upload video to Vimeo</label>
<input type="file" name="" value="" placeholder=""></p>
<p><input type="submit" name="" value="upload"></p>
</form>
</div>
<?php
}
Deberías obtener algo como esto: