$file->original: Where does it come from?
$file-&gt;original is set from file_save() to make it available to hook_file_presave(), hook_entity_presave(), hook_file_insert(), hook_entity_insert(), hook_file_update(), and hook_entity_update(). It is then removed from file_save() before the function returns the file object to the caller.

// Load the stored entity, if any.
if (!empty($file-&gt;fid) &amp;&amp; !isset($file-&gt;original)) {
  $file-&gt;original = entity_load_unchanged('file', $file-&gt;fid);
}


Clearly, if the file was not previously saved, $file-&gt;original doesn't get set.