Be carefully with the filename.
Imagine that a user upload a picture with name 'my_avatar.png', and then another user upload another image with same name. The old file will be overwrite or a exception can occur.
To correct this, on File::move, generate a unique name (don't use getClientOriginalName for this. If you need the original name for some reason, save this information on another place like a database).
Check too if the file is a valid image, and restrict the size and resolution.
In my projects, I put the 'upload' folder on a config file, than, if I need, I can change the upload folder without change any class.
you can concate with original extension, or you can check the image type (png, gif, bmp, jpg, etc) and if is the case, convert the image to jpg and force the extension to always '.jpg'.
I prefer to always to convert the image to jpg (check the intervention package) to reduce disk usage on the server, but if you need the original quality or better quality than a jpg file, convert to png or maintain the original file and get the extension.