I have a gallery on my site where users can upload images.
I would like the images to sit in a div that maintains its height, the images should be no larger than 500
The property you're looking for is object-fit. This is one of Opera's innovations, you can read more about it in their 2011 dev article on object-fit (yep, it's been around that long). A few years ago, I wouldn't have been able to recommend it to you, but caniuse shows that everyone else is starting to catch up:
http://caniuse.com/#search=object-fit
#gallery img {
-o-object-fit: contain;
object-fit: contain;
}
Using a value of contain will force the image to maintain its aspect ratio no matter what.
Alternately, you might want to use this instead:
#gallery img {
-o-object-fit: cover;
object-fit: cover;
overflow: hidden;
}
http://sassmeister.com/gist/9b130efdae95bfa4338e