то смысл файл получать по прямой ссылкестатика она и в африке статика
имея на руках адрес к файлу не сложно сгенерить к нему заголовки, расширение то в адресе указано.
Delphinum,у меня что то похожее, только проверкой и генерацией в сл. отсутствия занимается прослойка между хранилищем и логикой запрашивающей аватарки бгшки и т.д.
app::storage()->setUserUploadDir('public');
app::storage()->avatar = 'profile/avatars';
app::storage()->background = 'profile/background';
app::storage()->audioFile = 'music';
app::storage()->videoFile = 'video/file';
app::storage()->videoScreen = 'video/screen';
app::storage()->forum = 'forum';
app::storage()->systemImages = 'system/images';
app::storage()->tmpUpload('upload');
app::storage()->registerMethod('avatar', function($id, $type = false)
{
if($type==true){
return app::storage()->fileExists(app::storage()->path('avatar').'/'.$id.'.png') ? '/'.app::storage()->path('avatar').'/'.$id.'.png' : null;
}else{
return '/'.app::storage()->path('avatar').'/'.$id.'.png';
}
} );
app::storage()->registerMethod('defaultAvatar', function()
{
return '/'.app::storage()->path('systemImages').'/noavatar.png';
} );