saveFile(): first arg is a file path; support for saving non-temporary files; schema: files created_by is nullable