Need advice: saving uploaded files in dataroot/subfolder vs saving in users' subdirs

I want to fix a bad design decision made in the Gifts plugin where uploaded gift images are saved in the gifts plugin dir. If possible I would like to make use of Elgg API functions to handle the upload, resizing and saving. Recently I've reworked the Badges plugin code and switched to Elgg 2.3 functions to handle this, e.g. acceptUploadedFile(), but the files will end in the user's subdirectory and you can only change the saving location relative to that with the filestore_prefix.

Is there any API function I can use instead to save the images in a subfolder directly in dataroot (or if not a ready-to-use function some code example in core I could take as starting point to see how to do it)?

Or is it better to save the uploaded files in the user's subdirectory anyway? The use case in the Gift plugin is that an admin uploads the gift images which are then used by other users on sending gifts. I guess with the access level set to public it would also work with the images in the user subdiretory (they are just not as easy to find then if you ever need to work directly with the files).