Saving Asset field in FEEF ("Front-end entry form") using Plugin
Here's the issue:

// Add dynamic fields
$entry-&gt;setContentFromPost(craft()-&gt;request-&gt;getParam('fields'));


setContentFromPost requires that if you pass any uploaded files in, you need to pass the field name as a string, instead of the actual posted values.

Changing it to this and it should work:

$entry-&gt;setContentFromPost('fields');