File field not getting updated
You should use Form API to create and manage file uploads and their management. You can do something like this instead:

...
$form['file'] = array(
    '#title' =&gt; t('File'),
    '#type' =&gt; 'managed_file',
    '#description' =&gt; t('File formats: %format. Maximum: %max_size. Resolution %resolution', array('%format' =&gt; 'Jpg, Jpeg, Png, Gif', '%max_size' =&gt; '800 Kb', '%resolution' =&gt; '80x100')),
    '#upload_location' =&gt; 'public://',
);
...


and submit function:

...
$node = node_load(32);
$file_d = $form_state['values']['file'];
$file = file_load($file_d);
$file-&gt;status = FILE_STATUS_PERMANENT;
file_save($file);
file_usage_add($file, 'node', 'TYPE', $file-&gt;fid);
$file_info = image_get_info($file-&gt;uri);

$file_arr = array(
  'fid' =&gt; $file-&gt;fid,
  'alt' =&gt; '',
  'title' =&gt; '',
  'width' =&gt; $file_info['width'],
  'height' =&gt; $file_info['height'],
  'uid' =&gt; $file-&gt;uid,
  'filename' =&gt; $file-&gt;filename,
  'uri' =&gt; $file-&gt;uri,
  'filemime' =&gt; $file-&gt;filemime,
  'filesize' =&gt; $file-&gt;filesize,
  'status' =&gt; 1,
  'timestamp' =&gt; $file-&gt;timestamp,
  'rdf_mapping' =&gt; array(),
);

$node-&gt;field_ftest[LANGUAGE_NONE][0] = $file_arr;
node_save($node);
...