How do I save a Matrix field with an asset block programmatically? I'm trying to submit an Entry programmatically from the front end.  Everything works flawlessly, except, the asset fields never save.  I've dug and dug through the Entries, Elements, and Content Services.  Through similar Controllers; the Element Model.  I can't find any errors, and no matter what I do, nothing seems to happen with Assets.  Any ideas?

This is a simplified version of my html form:

&lt;form method="post" action="" accept-charset="utf-8" enctype="multipart/form-data"&gt;
    &lt;input type="hidden" name="action" value="plugin/save/saveEntry"&gt;

    &lt;input type="hidden" name="title" value="Woo hoo"&gt;
    &lt;input type="hidden" name="authorId" value="1"&gt;
    &lt;input type="hidden" name="sectionId" value="10"&gt;
    &lt;input type="hidden" name="locale" value="en_us"&gt;

    &lt;input type="hidden" name="fields[matrixField]" value=""&gt;
    &lt;input type="hidden" name="fields[matrixField][new1][type]" value="imageBlock"&gt;

    &lt;h4&gt;Upload Your Photo&lt;/h4&gt;
    &lt;input type="hidden" name="fields[matrixField][new1][fields][image]" value=""&gt;
    &lt;input type="file" name="fields[matrixField][new1][fields][image][]" /&gt;

    &lt;button&gt;Submit&lt;/button&gt;

&lt;/form&gt;


And here's a simplified version of my Controller/Service (all jammed in the Controller for the convenience of sharing)

&lt;?php
namespace Craft;

class Plugin_SaveController extends BaseController
{
    public function actionSaveEntry()
    {       
        $this-&gt;requirePostRequest();

        // Fields
        $entry = new EntryModel();
        $entry-&gt;sectionId  = 10;
        $entry-&gt;typeId     = 11;
        $entry-&gt;locale     = 'en_us';
        $entry-&gt;postDate   = date('Y-m-d');
        $entry-&gt;authorId   = 1;

        // Tell our content model where to look for custom fields
        $entry-&gt;setContentFromPost('fields');

        // Content
        $entry-&gt;getContent()-&gt;title = "Fancy Title";

        // Save the entry content
        craft()-&gt;entries-&gt;saveEntry($entry);

        $this-&gt;redirectToPostedUrl();

    }
}
This ended up being a Craft bug. We just released Craft 2.1 build 2562 with a fix.