Get node field image in " hook_node insert "
Drupal gives this by single file load from database:

$objFile = file_load($fid);
$imgabspath = objFile-&gt;uri; //getting file page (Example of image file absolute path)
print file_create_url($imgabspath);  //This is your file absolute url
$filename = objFile-&gt;filename; //getting file name


Still you are not getting result proper then there is some problem into $fid so confirm it by:

$node = node_load($nid);
// assuming file field has been added to the node has field_example_file machine name.
if (!empty($node-&gt;field_example_file)) {
  // $img will contain an array, which has the data of a file (file object converted to array I suppose..)
  $img = $node-&gt;field_example_file['und'][0];
}
$fid = $img['fid'];//This is your fid...


NOTE : file_create_url() always creates an absolute URL, either using the global $base_path that you have defined, or using the one that Drupal guessed during bootstrap. Also note that file_load() doesn't return title and alt attributes of field_image.

Thanks!