Working with Entity - flashvnn/Drupal-Notes GitHub Wiki

Save file with entity metadata wrapper

  $node        = entity_create('node', array('type' => 'article'));
  $node->uid   = $user->uid;
  $node->title = "My Title";
  $wrapper     = entity_metadata_wrapper('node', $node);
  $wrapper->field_company_ref->set((int) $company_id);
  //store image
  if (isset($_FILES['files']['tmp_name']) && file_exists($_FILES['files']['tmp_name'])) {
    $file_uri = "public://problem/" . time() . "_" . rand(0, 1000) . ".jpg";
    $dirname  = drupal_dirname($file_uri);
    if (!file_exists($dirname)) {
      file_prepare_directory($dirname, FILE_CREATE_DIRECTORY);
    }
    if (drupal_move_uploaded_file($_FILES['files']['tmp_name'], $file_uri)) {
      $file           = new stdClass();
      $file->uid      = $GLOBALS['user']->uid;
      $file->status   = 1;
      $file->filename = trim(drupal_basename($file_uri), '.');
      $file->uri      = $file_uri;
      $file->filemime = file_get_mimetype($file->filename);

      if ($file = file_save($file)) {
        $wrapper->field_image->file->set($file);
      }
    }
  }

  $wrapper->save();